4 ms·
The JavaScriptCore API is private on iOS, which means you're not allowed to link to it. Ejecta therefore comes bundled with its own version of th
by camus2 13y ago
The JavaScriptCore API is private on iOS,
which means you're not allowed to link to it.
Ejecta therefore comes bundled with its
own version of the library to circumvent these
restrictions.
So you are basically using another VM(a second javascript core) in an IOS app. Isnt it forbidden to do so,running VMs in IOS apps?
A better approach would be to do like TITANIUM ,except that you expose a CANVAS like API,so that your javascript canvas framework is compatible with it => less work,and no trick that would make your app kicked out of the store once the scheme is busted.
- Rafert 13y agoNo, it isn't. It would make the likes of Xamarin and RubyMotion impossible. You're confused with the fact that App Store policies do not allow downloading and running new executable code.
- camus2 13y agoI thought Xamarin and RM compiled to objc.
- deleted 13y ago[deleted]
- _delirium 13y agoApple used to forbid bundling interpreters/VMs, but the rules were relaxed in 2010, to forbid only dynamically loading code to execute in such an environment. A code-executing environment where all the code to be executed is statically bundled with the app is allowed since 2010, so you can embed a Lua or JS environment as long as you also embed all the Lua/JS scripts in the app. Here's a story from when the change was made: http://allthingsd.com/20100909/apple-hands-app-developers-an-olive-branch/ http://allthingsd.com/20100909/apple-hands-app-developers-an... The current terms read: 3.3.2: 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. The only exception to the foregoing is scripts and code downloaded and run by Apple's built-in WebKit framework.