To fill in some details (but IANAiOSdev): Apple first disallowed interpreted code [1]. (Wow, I had forgotten how much I loathed Apple for that.) Later in 2010 Apple loosened it to allow interpreted languages as long as you didn't download new code from the internet [1]. The exception was that you could use WebKit to run JS in a webpage in your app. I guess their excuse was security, so they could ensure the app they approved was the one you ran. In 2017 [2] they loosened it further to allowing downloading or importing code in some circumstances. The most important limitation now is that you can't generate executable code on iOS, which disallows JITs and makes everything other than WebKit a second-class citizen.
The old terms:
> Unless otherwise approved by Apple in writing, no interpreted code may be downloaded or used in an Application except for code that is interpreted and run by Apple's Documented APIs and built-in interpreter(s). Notwithstanding the foregoing, with Apple’s prior written consent, an Application may use embedded interpreted code in a limited way if such use is solely for providing minor features or functionality that are consistent with the intended and advertised purpose of the Application.
That's a separate unrelated issue. The terms I'm taking about dictated what language the app could be "originally written" in, regardless of what happened at runtime. Technically, if you prototyped an app in some other tech and then manually ported it to objective-C it wasn't even clear if that would satisfy the terms as written.
(In practice of course it didn't matter what the terms precisely meant, because Apple never enforced them apart from removing flash-based apps.)
[1] https://playcontrol.net/ewing/jibberjabber/apple-ios-license...
The old terms: > Unless otherwise approved by Apple in writing, no interpreted code may be downloaded or used in an Application except for code that is interpreted and run by Apple's Documented APIs and built-in interpreter(s). Notwithstanding the foregoing, with Apple’s prior written consent, an Application may use embedded interpreted code in a limited way if such use is solely for providing minor features or functionality that are consistent with the intended and advertised purpose of the Application.
[2] https://www.theregister.com/2017/06/07/apple_relaxes_develop...