Where’s Auro for iOS?!
Back in September, we launched Auro! Only, there was a minor problem with the iOS version. Turns out that that minor problem was – as far as we can tell – a huge problem, one that we’ve been dealing with ever since.
Broadly, here’s the issue: since iOS 8.0 came out, we’ve had trouble getting the game to work *and* be accepted by Apple for submission. We’ve more or less been stonewalled over and over in our attempts to fix the problem, and so now we’re coming to the community for help.
For more technical details – or to just support us in the hopes of finding a solution, please click on these links and upvote!
We’re hoping that someone will be able to give us a reasonable solution. We really, really don’t want to have to port the game from scratch to something else, and it seems like that shouldn’t be necessary.
Once we have this ironed out and we can get the game out, we can get back to making the game better and better. It really, really sucks to not have the game out yet on iOS, where the vast majority of our fans are likely to be. We thank you for your patience!
– Dinofarm Games
Here’s the full text of Oren’s post.
So, I inherited a game project with the following setup:
*A core SWF of the game itself, written in Haxe (3.0)/NME (4.0.2), utilizing the Starling framework, compiled to a Flash target using FlashDevelop
*An AS3 wrapper which deals with assorted device communication needs (e.g. detecting device capabilities, managing phone lock state and pausing game/muting music, etc). This is compiled into own SWF (AIR 3.6), which is what is actually launched, and subsequently loads the “core” SWF and adds it the stage.
*This AS3 SWF is subsequently packaged into the target formats (APK/IPA) using ADT (also AIR 3.6), along with its assets (including the core SWF).
Despite the odd complexity, the whole thing worked just fine; we created functional, usable apps that a)worked on both Android and iOS devices, and b) passed submission criteria.
Flash forward several months; the game has now passed beta and is ready for initial release. Android, everything goes fine. iOS, the other hand… Just days before we attempted to upload 1.0 to iTunes Connect, Apple changed their requirements. Suddenly, we were getting the error “Apps and app updates submitted to the App Store must be built with the public (GM) versions of Xcode 5.1.1 or later, and iOS 7 SDK or later. Don’t submit apps built with beta software.” Fine, an error that tripped up many a developer back in September. Eventually Adobe released AIR 15, and packaged IPAs once again met Apple’s submission requirements.
Unfortunately, updating to AIR 15 upset the applecart. We were now able to upload the IPA, but, ironically, it would not work on iOS devices. The loading screen (generated by the pure AS3 “wrapper” SWF) comes up, but then when the title screen (generated by the “core” SWF) should be appearing, there’s nothing. Black screen, no activity, or alternatively (on some later attempts), instant, message-less app disappearance). No errors generated on the iOS console, nothing untoward happening when stepping through the app in FDB (right up until the app evaporates and FDB loses its connection to the remote host).
Other salient information:
I have tried updating literally every component involved in the process, assorted updates of AIR 15, and 16 beta. All of the listed haxelibs. We’ve even tried porting the “core” project (in the most cursory of manners) to OpenFL. All of these have resulted in versions that work on Windows (desktop, not phone), work on Android, but do not work on iOS.
Haxelib libraries: Original:
actuate: 1.6.4 [1.6.5]
openfl-tools: [1.0.10] 1.0.8
Extra tasty crashy:
actuate: 1.7.0 [1.7.5]
haxelib_client: 3.1.0-rc.3 [3.1.0-rc.4]
hxcpp: 3.0.2 [3.1.39]
nme: [4.0.2] 5.1.8
openfl: 1.1.1 2.0.1 [2.1.2]
swf: 1.0.2 [1.5.2]
tl;dr: Old version of AIR app works on iOS but can’t be submitted to iTunes. New version can be submitted, but does not work on iOS (resulting in either a frozen black screen or a crash)
Any help whatsoever– suggestions of what the problem might be, other ways we might be able to figure out the problem, or even ways to get the working app through the submission blockage (e.g. re-signing)– would be greatly appreciated. Having to rework the entire game in some other framework, etc, is an extremely untenable solution at this time. This is basically a life or death situation for a very promising indie game dev company. ( x-posted to (StackOverflow)[http://stackoverflow.com/questions/27916075/haxe-nme-game-failing-on-ios-devices-after-air-version-updated] )