5 ms·
> Apple does not permit any apps that has interpreted or generated code An interesting exception to this is Expo, an app that lets you load React Native apps b
by lwb 7y ago
> Apple does not permit any apps that has interpreted or generated code
An interesting exception to this is Expo, an app that lets you load React Native apps built by other developers over the internet. Expo gets around this on Apple by forcing you to sign into that developer's account before downloading their app, so that it's plausibly "yours". I've used to distribute early builds of a React Native app really easily.
All of this to say, I wonder to what degree Apple's policy applies when it's "your" app, or you are the developer, or whatever. I suspect Expo, as a venture backed startup, has some kind of a working relationship with Apple that affords them a tiny amount more leeway than the average Github user.
This could actually be an incredibly useful application that many people pay lots of money for if were ever allowed on the market -- think of the combination of iPad + keyboard + Windows Remote Desktop. Really sad that Apple makes their platform so restrictive. (Yes, security issues, but still, seems like a good enough sandbox could overcome the danger of remote execution.)
- rhodysurf 7y agoExpo is also completely different and within the rules. They arent installing apps, they are simply loading JS and running it like any RN app could do. They just make it easy by pre-bundling deps so that they can be loaded on the fly. Its literally just downloading JS and assets from a server and then executing the JS with JSC on ios. They also get around the limitation of having half the screen showing the executed code by not letting users modify the code through their app.
- lwb 7y agoRight, but the QEMU project is also simply loading X86 (or other) assembly code and interpreting it in a virtual machine... unless I misunderstand this project and it does something more sophisticated. > the limitation of having half the screen showing the executed code I'm not aware of this limitation, could the QEMU port use this to show the ASM that's being executed to get around this?
- rhodysurf 7y agoIDK about virtual machines and why this isnt allowed. But related is how this app works that is a c compiler for iOS and is in the app store: https://www.reddit.com/r/iOSProgramming/comments/dr5bxi/app_for_coding_and_running_c_code_in_ios_locally/ https://www.reddit.com/r/iOSProgramming/comments/dr5bxi/app_... It basically does the same thing Swift Playgrounds does where is compiles to LLVM machine code and runs it will LLVM compiled for iOS. And it is on the app store so IDK the rules at all apparently and why QEMU wouldnt be allowed.
- dfox 7y agoThe rules apparently (since last year or so) are that you can interpret arbitrary code as long as the code in question not only legally but in practice meets the definition of the zeroth FSF's rule (notice that the “executables” on the FS image distributed with SeeLess are LLVM IR assembly text files, which is probably the reason why the thing is so damn huge)
- saagarjha 7y agoSwift Playgrounds compiles to native code and loads it with Apple-private entitlements.
- ericlewis 7y agothe largest difference is that Expo uses JavaScriptCore, a framework provided by apple for use by any application that wishes to execute javascript code. Since it is their own interpreter it is fine.
- kick 7y agoApple's really loose with the interpreted code policy. Not going to mention some of the apps I use that do so if nothing else because HN has dozens of Apple employees.
- saagarjha 7y ago> Not going to mention some of the apps I use that do so if nothing else because HN has dozens of Apple employees. Believe me, the engineers at Apple are well aware of them already.
- deleted 7y ago[deleted]
- anonsivalley652 7y agoThat's not much different than TestFlight (acquired by Apple) or MS AppCenter (acquired as HockeyApp). PS: I'm using an iPad Pro 10.5 over LTE right now with an original Apple Wireless Keyboard 1 with proper arrow keys. I use Vim on it and can save to shared services. Heck, you can even fire-up the embedded python with :!python3<enter> It also redirects phone calls from my vintage unlimited data plan, so I don't need a phone... but it looks goofy talking into my iPad John Oliver-style. ;)
- lwb 7y agoThe important difference is the turn around time -- with Expo I can make a change locally and see it with my testers in less than a minute, whereas with TestFlight everything has to be manually reviewed for 2-3 days after a heavy-handed submission process.
- jsjohnst 7y agoI routinely do TestFlight builds without manual review and fast turnaround from build -> running on beta user devices.
- jsjohnst 7y ago> iPad + keyboard + Windows Remote Desktop Why not just install the free Microsoft RDP client for iOS? Seems like extreme overkill to use an x86 emulator with a full OS installed to do something that’s available for free in the AppStore.