6 ms·
How’d this get past app review? Apple has allowed zero emulators of any type on the App Store. I bet this gets crushed.
by wronglebowski 3y ago
How’d this get past app review? Apple has allowed zero emulators of any type on the App Store. I bet this gets crushed.
- DaiPlusPlus 3y agoWell... it's not an "emulator", I suppose - it's an execution-engine.
- kmeisthax 3y agoApple is very weird with how they interpret that part of their rules. iSH is allowed but not iDOS, etc.
- KMnO4 3y agoiSH has compiled the binaries for arm64 so they actually run natively. When they do a syscall to malloc they are actually doing a syscall to malloc. iDOS is interpreting the bytecode and wrapping the unavailable things with its own implementation. When a DOS application runs malloc, the memory is assigned by iDOS instead. I’m not saying Apple is consistent, but your example doesn’t show that well.
- jmah 3y agoThough it doesn't invalidate the gist of your saying, malloc is a user-space function not a syscall. (Its implementation will occasionally do a syscall, such as to sbrk or vmmap.)
- basique 3y agoIsn't iSH literally an x86 emulator?
- doctorpangloss 3y agoYeah I mean, people think it’s a legal or engineering issue. If an App Store Editor (aka category manager) likes you, you will do alright.
- kmeisthax 3y agoThis is why App Store needs 'conceptual approvals'. I would never build anything 'cool' on iOS knowing that 'cool' things tend to piss off Apple.
- meindnoch 3y agoFalse. iSH is an x86 "bytecode" emulator. "Possibly the most interesting thing I wrote as part of iSH is the JIT. It's not actually a JIT since it doesn't target machine code. Instead it generates an array of pointers to functions called gadgets, and each gadget ends with a tailcall to the next function; like the threaded code technique used by some Forth interpreters." https://github.com/ish-app/ish https://github.com/ish-app/ish
- kmeisthax 3y agoYou're thinking of a-Shell, which does offer compiled & locked binaries in a command line environment on iOS (via "ios_system"). Even then, they also support running WASM/WASI modules in a-Shell's command line environment.
- fragmede 3y ago> 2.5.2 Apps should be self-contained in their bundles, and may not read or write data outside the designated container area, nor may they download, install, or execute code which introduces or changes features or functionality of the app, including other apps. Educational apps designed to teach, develop, or allow students to test executable code may, in limited circumstances, download code provided that such code is not used for other purposes. Such apps must make the source code provided by the app completely viewable and editable by the user. https://developer.apple.com/app-store/review/guidelines/#physical-harm https://developer.apple.com/app-store/review/guidelines/#phy...
- kevingadd 3y agoYeah, ScummVM runs the original game scripts, doesn't it? And the original games aren't bundled with it (they can't be). Kind of surprising they got away with violating that rule.
- turquoisevar 3y agoThis is not as cut and dry as you might think it is. > Apps should be self-contained in their bundles, and may not read or write data outside the designated container area This refers to the storage container each app gets, once a user loads up a script into the app, it’ll be stored within its container. So there’s no reading or writing outside its container area. One could argue that the app itself isn’t self-contained in its bundle, but that depends on how you draw the lines. If your definition is that the app is an emulator then it’s self-contained within its bundle, if however you contend that the games you load in are to be considered part of the app and that those games are to be deemed apps then it’s not self-contained. > nor may they download, install, or execute code which introduces or changes features or functionality of the app, including other apps There is no downloading or installing code, but there is executing code. Again, does executing this code change the features or functionality of the app? If your definition is that the app is an emulator, then no, if your definition is that when it runs these games it changes the app then yes the execution clause applies. At face value the app, the emulator, is not changed and is self-contained, but reasonable minds can differ. Nevertheless I don’t think the app it at risk for its functionality, rather it’s at risk for being under GPL license as per the App Store listing. This is because Apple doesn’t allow GPL licensed apps on their App Store courtesy of the FSF[0] who tried to force Apple to change their App Store terms with a gambit by submitting an app licensed under GPL, to then turn around and complain that Apple’s App Store doesn’t comply with the GPL license by virtue of not distributing the app without DRM and other restrictions. Apple’s response of course was to simply remove the app in question and adopt a silent policy of not allowing GPL apps (and other apps with a license that collides with the App Store ToS and license). 0: https://www.fsf.org/blogs/licensing/more-about-the-app-store-gpl-enforcement https://www.fsf.org/blogs/licensing/more-about-the-app-store...
- Turing_Machine 3y agoScummVM explicitly denies being any kind of emulator. It doesn't run the original source code of the games. Rather, it's a complete rewrite of the game that uses the original assets (images, sounds, internal scripts, etc.)
- deleted 3y ago[deleted]
- deleted 3y ago[deleted]
- tannhaeuser 3y ago“[Apple's codex] is more what you’d call ‘guidelines’ than actual rules.”
- wronglebowski 3y agoExactly, which is why if this gets any traction I believe it'll be removed. Apple does not allow you to consume your own content on their platforms without a tax or at least a little roughing up.
- wharvle 3y agoVLC’s doing fine. It’s how our kids watch movies on road trips (download to iPad from Jellyfin’s web interface, play in VLC). Almost every book I’ve read in Books is from libgen. Download, open-in, and it’s on all my devices. Reading progress syncs and everything. The best electronic comic book experience I’ve seen is from a free app (optional one-off IAP that does nothing—I wish it had higher tiers, the author is doing god’s work and I’d have given them $50 or something, no question). I put related cbr and cbz files in a directory in icloud, they show up seconds later in this app, it quickly figures out what they are (no clue how it’s as accurate as it is) and organizes them, and I get to reading two pages at a time in landscape on a 12.9” iPad. The only Apple content I pay for is Apple Music, because it’s so damn convenient and I listen to way more music when I have it. I used to put my own music files in the exact same app, though, and that worked fine.
- Cenk 3y agoWhich app do you use for comics?
- wharvle 3y agoYeah, I was gonna plug it since it’s great, but didn’t have it on my phone (it’s iPad only, which makes sense) and forgot the name. Looks like it’s Chunky: https://apps.apple.com/us/app/chunky-comic-reader/id663567628 https://apps.apple.com/us/app/chunky-comic-reader/id66356762...
- nsajko 3y agoI don't think ScummVM features an emulator, rather it reimplements game engines.
- meibo 3y agoYes, but those games contain scripting languages, like Lua for Grim/Escape from Monkey Island. That isn't shipped with the app, so it technically violates the rule. Hope they keep it up though, or if not, hope they get their ass kicked into allowing third-party app stores soon so that you don't need to jump through massive hoops to use anything like this.