Unexpected Obstacles
I really wanted to have Knard submitted for the AppStore by the end of 2014, so I spent the days after christmas polishing stuff and fixing minor bugs, pulled the latest versions of libgdx and robovm, built a new version for ios and - BAM - experienced a crash after right after starting on iPad.
The app showed the loading screen and the cover but when I flipped to the first page, it crashed. Now what? With robovm still lacking the possibility to debug my code on ios I was bound to trial-and-error-debug and it took me almost a whole day to figure out that asynchronous loading of music crashed the app.
I created a new example project that did nothing else but create an assetmanager in libgdx, load a piece of music asynchronously and play it, which worked on desktop and android but crashed on ios.
After having found the issue I was able to properly search the internet for it and found out that the libgdx/robovm guys had recently documented the issue on github but were not sure which of the two frameworks were to blame.
Niklas, the guy behind robovm marked the issue as fixed shortly after, and according to github, using the gradle snapshot version of robovm should do the trick.
Right from the start my biggest problem was that my app made plenty of use of async music loading for the narrator while most other indie apps just need a main theme that is loaded (synchronously) when the game is started. Worse than that, the few others that had reported the crash said it only occured when the used a certain release of libgdx/robovm, while in my case it now even occured for older projects for which i hadn't even updated the versions in the gradle build file. I spent several days discussing possible issues on libgdx irc and trying pretty much everything (installing newer versions of xcode and eclipse, updating eclipse plugins, deleting gradle caches and so on). Again and again, i was told that the issue had been fixed and I was very close to installing my whole setup on a second Mac because some kind of cache (obviously not the gradle cache which i deleted several times) had fucked up my build pipeline. And the fact that my issue occured for older procjects that used libgdx 1.0.0 and robovm 0.0.14 and that had once run smoothly left me without a clue.
Luckily, the fucked up holidays ended and I had to start working again, which left no time for that robvom issue. And two weeks after the issue had initially been claimed to be fixed, there finally was a new robvom eclipse plugin. Installing it instantly fixed all my problems.
Once again I learned a hard lesson about wasted time, trying to figure out stuff you can do nothing about and how bad it can be to depend on other peoples software (even if those people are outstanding programmers).