Deserfeld 11 - 94447 Plattling - Germany
Tel. +49 (0) 9931/89408-80 - Fax. +49 (0) 9931/89408-90
Why only Ad Hoc? (or how unpredictable and obscure Apple reviews apps)

So you're interested in the whole story about how it came to distributing ScummVM directly instead of through the App Store? Well, thank you for your interest! We will try to explain the whole fuss..


After spending quite some while in evaluating a possible port of ScummVM to the official iPhoneOS we decided that it's well possible to get rid of the use of Apple private API (what the ScummVM port for jailbroken iPhonesOS devices heavily uses) and to write a FileManager which allows the user to download game data onto his device and exchange savegames. Of course we also had a look at the rules Apple enforces for applications on the App Store and indeed found a paragraph which might cause problems.

This paragraph is (like most other paragraphs in the agreement) very vague worded as it tries to cover a lot of different (unwanted) functionality. Basically this paragraph says that applications aren't allowed to

  • start other executable or interpretable code
  • download other executable or interpretable code
  • otherwise interferes with any of the restrictions Apple casted on the applications on the iPhoneOS
It contains a lot more blabla, but those points are the most importants. As you might see, especially the first point could be a problem for ScummVM, because the game engines contained within ScummVM do nothing else than interpreting the game data which mostly consist of pictures, videos, sound and a command script.

As we knew already about other cases where Apple approved one application for the App Store and rejected another functionality-wise identical application (e.g. two applications, both downloading the messy application sales reports from Apple to the iPhone and processing it into nice graphs and stuff. One was approved by Apple and is available through the App Store, the other was rejected because it "interferes with Apple websites") we had already some doubts and started to look at other approved applications on the App Store to see, if there are others doing something similar.

We actually found a lot of applications which do strickly spoken violate one or more points of the above mentioned paragraph: There are a lot of games offering to download new levels and game data after the initial purchase. To make actually use of those downloaded additional game data, there must be more information in them in form of some script than just graphics and sounds.. e.g. how should a platformer game know where the hero can walk and where he would die or how the enemies are reacting, etc. if it just would get new level graphics and sounds?
Or what about those map/GPS applications which partly even come without any maps after purchase and are actually useless until you download some map packs from a third party server? Those map packs, especially if they are in some way interacting with GPS, must make use of some sort of scriptfiles.. for map/GPS apps this would be some files in KML or GPX format, which get parsed to get a route or trail etc. etc.

We could list even more apps here, but we think you got the idea..

Anyway, we finally decided to do the port and spent a serious amount of effort in cleaning up ScummVM to only use official Apple API and frameworks and to write a easy-to-use FileManager. After we were done, we submitted ScummVM to Apple for the first time.

After one week (reviews of applications last 1 week in 99% before getting replied..) we got a mail telling us that ScummVM was rejected because of a bug in the FileManager which caused it to not display anything from a connected server. No word about the above mentioned paragraph! So we though "Cool! Let us fix this issue and everything should be ok." and we did it so and resubmitted a new version..

The second week later we got another mail from Apple rejecting ScummVM again because the FileManager didn't tell the user if there were no data network available. sigh ... how could we overlook that? Anyway, we fixed that issue too and submitted ScummVM the 3rd time being confident that now all bugs were ironed out and nothing prevents a release on the App Store, but...

One week later we've got the next mail from Apple were they told us that ScummVM was rejected because it contains informations on how to hack the iPhoneOS bla bla bla ... what? There's not a single hint as to how iPhoneOS can be hacked in there! We even put much effort in making it "official"!! The only mention of "jailbroken iPhoneOS" is in the description of ScummVM where we tell the people that ScummVM already exists for jailbroken iPhoneOS but our release is the first for non-jailbroken/official iPhoneOS! So we replied to that mail stating the above and asking for a new review or a clarification what exactly the unnamed reviewer (you never find out who exactly reviewed your app.. its always the big Apple review team only) found to reject it..
Surprisingly enough, only some hours later we got an answer (again no personal written, but another text snipped building kit mail) "to clarify", quoting a completely different paragraph.. yes, the paragraph we descriped above.

Hmm.. as said, that paragraph covers a lot of different issues, so we didn't know (and still don't know!) what part exactly is the problem.. we replied again and told Apple that we need more information.. is it because there is a so-called Launcher to go either into the FileManager, the built-in help or the actual ScummVM which seems like we start other code? If so, thats no reason as everything is one big executable code just taking different code-parts depending on the users choice.
Is it because we provide a way to download game data to the iPhone? Yes, we do. But all data is only downloaded into the Documents/ folder of the installed ScummVM and can't be moved somewhere else. Also the ScummVM only interpretes the game data and has no backdoors.. heck, it's open source so everybody can check if he doesn't believe it! And besides, who would stop a "usual" iPhone App to have a secret backdoor?
Or is it finally, because ScummVM is the interpreter which interepretes the game data the user downloaded? Sure that might violate the paragraph, but then Apple would have to remove a lot (and we mean a LOT) apps from the App Store which do very similar things!

Ok, so we wrote that (in far more detail) in our reply, but we never got an answer back! So we just submitted ScummVM unmodified again in the hopes the reviewer in charge will at least then read our mails and take it into account..

You guessed it already: After another week we got the very same standard click-and-forget mail from Apple that ScummVM was rejected because of that paragraph... bla bla bla...

Just to be sure, we replied and tried again to get more informations and maybe some small discussion, but of course Apple didn't deign to answer..
THANK YOU APPLE FOR YOUR GREAT DEVELOPER SUPPORT!!! (<- that was irony!)

Well, now here we are and publish our ScummVM port without Apples' App Store directly via Ad Hoc distribution. This is a bit more effort for us and also for the user and we know that we probably won't sell as much units as through the App Store (by far), but at the moment we're simply that pi$$ed about Apple that we are incredible happy about every unit sold where Apple does NOT get their dorty 30% share!

And maybe our story will even make it on some well-known iPhone/news/Computer websites to tell others.. and maybe (ok, a very big maybe here) it will even make Apple to rethink about their obscure review process. It did already on other topics like those infamous joke-apps, so why not here?


We want to thank you for being interested in and reading about our odyssey.. we hope you will also decide to support us and spread this story around. And maybe you'll even support us by buying ScummVM!


Yours sincerely, the Stackswap team