Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I was researching this and I can't seem to find a concrete answer.

share|improve this question
Angry Birds uses Lua as its level file format (well, at least on the N900). – mrbinary Oct 19 '11 at 15:11
up vote 12 down vote accepted

The iOS developer program agreement section 3.3.2 reads (in part) as follows:

An Application may not download or install executable code. Interpreted code may only be used in an Application if all scripts, code and interpreters are packaged in the Application and not downloaded.

When the license agreement was updated in 2010, this change was covered by most major Apple news sites (since it was a relaxation of the earlier rules). For example, here.

To that end, Lua should be okay as long as all the code you run is bundled within the resources of your application and never downloaded remotely (so Apple can verify it). Of course, I am not a lawyer so my interpretation of legal documents should be taken with a suitably large pinch of salt.

share|improve this answer
Am I right in thinking that the developer agreement used to contain a 'fight club clause' stating that you must not say what's in the agreement? – George Duckett Oct 19 '11 at 6:58
@George: Given that the developer program is open to anyone willing to pay $100 (and you agree to the terms before paying), I doubt it had such a clause. At the very least it would be totally meaningless. – user744 Oct 19 '11 at 11:07
Caveat: The code can be downloaded with in app purchases, such as if you intended to have downloadable levels with LUA. – DampeS8N Oct 19 '11 at 15:43

Considering that Corona SDK exists, I'd say yes.

Apple has also allowed Adobe to make an AIR runtime for iOS.

share|improve this answer
IIRC Monotouch specifically uses the AOT compiler to avoid having JIT code. I'm not sure it's the best example here. – Jimmy Oct 19 '11 at 1:40
@Jimmy that's true, I've revised the answer. – michael.bartnett Oct 19 '11 at 4:45
@Jimmy: That's true, but forbidding JIT is not the same thing as forbidding embedded languages. – user744 Oct 19 '11 at 11:06

Apple allows any scripting language, there is a catch, it must be packaged in the app or app addons that go through apple, it cannot be downloaded of an external server and the user cannot edit it.

share|improve this answer
Regarding "the user cannot edit it": the free app Paragraf allows the user to edit GLSL shaders on-device. (Now, technically, GLSL is not a scripting language, but I think the presence of this app is still a datapoint worth considering.) – smokris Nov 12 '11 at 1:55
It depends on your definition of scripting language, it is a piece of code that gets executed at runtime.. But I agree, it is a quite interesting idea. – Matt Jensen Nov 23 '11 at 0:16

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.