5 ms·
>> I mean Drafts has the ability to download actions (not sure if that is the right term) which are JS that run inside the app. I think this is fine and doesn't
by thefounder 3y ago
>> I mean Drafts has the ability to download actions (not sure if that is the right term) which are JS that run inside the app. I think this is fine and doesn't skirt any rules,
I'm not familiar with that particular app but if that happens it's not fine and it seems to get a pass from Apple. The apps are not allowed to download executable code. You have to bundle it all in the app.
- ecedeno 3y agoThat's not exclusive to that app. Being able to update the app without going through the App Store was one of the big selling points of React Native a few years back. Apps are not allowed to download native code, however.
- tl 3y agoThat's ...not a feature of React Native. It's possible to reload the app's content on code change, but this very clearly intended for development only.
- williamdclt 3y agoYou’re describing fast refresh, the parent is talking about codepush. The whole point of CodePush is definitely to update the app without going through the store. It downloads a JS bundle (which is usually most of the app functionalities) and executes it.
- interpol_p 3y agoYou cannot download and execute native code on iOS, the sandbox prevents it. Memory protection ensures that pages marked as data cannot be executed There is a special entitlement to allow some Apple apps and frameworks to do this — Apple’s JavaScriptCore can do JIT, which requires executing data pages. Similarly, Swift Playgrounds can compile to native code and execute that code So, for example, you could ship a C compiler on iOS and it would compile perfectly valid binaries, but you would never be able to execute those binaries natively without code-signing them and deploying them in an Apple sanctioned way, which you cannot do on-device (except with the above mentioned exceptions)
- jamil7 3y ago> Apple’s JavaScriptCore can do JIT Only for Safari or if you use a WKWebView, otherwise if you use JavascriptCore yourself on iOS, JIT is disabled and quite slow. On macOS it’s enabled.