Starscraper Construction Kit

I just released my UE4 game project on the iOS App Store and I’ve now come to understand that the submission process for Apple was designed by a sadistic man who wears a black top hat and sits in the corner twisting his mustache while snickering gleefully at your pain. I suspect he also ties up women on railroad tracks, but I can’t be certain about that. After a couple weeks of back and forth which consisted primarily of me just waiting for a response, it has been approved and is live.

It’s a Paper2D puzzler written entirely in C++ and UMG and it was a lot of fun to develop. It’s an iPad only game at the moment, but it is actually functional on the iPhone… I just need to go back and rework some of the menus so they are the correct size on different aspect ratios. I haven’t tested on an Android device as of yet, but I suspect it is nearly functional there as well, with some work to do on the online features.

All in all, it was a great project to learn how to use UE4 and to learn how to make apps.
I hope it can provide a few moments of game playing enjoyment for others.

iOS App Store
Curioforge Website



Can you detail specifically the nature of the difficulties submitting it on the App Store? I’m a year away from such concerns, but stories like yours cast long shadows from my point of view.

Overall, it went fine. Just be prepared for it to take some time and be patient, which I’ve never been good at being.

The current review times seem to be that you will be in the Waiting for Review stage for about 3-5 days and then it will get moved to In Review for anywhere to an hour to a day or so. If it is rejected, you’ll need to address whatever feedback they gave you and resubmit. For my first submission, after the five days in Waiting for Review and a couple hours In Review, I had an issue where I had disabled the IAP functionality if you didn’t login via the Game Center. This isn’t a bug technically, but also technically you don’t have to login to the Game Center to use IAPs… so they rejected it as ‘IAP Functionality not Working’. Ok, fine, I fixed that and resubmitted. After about three days this time it moved from Waiting for Review to In Review and it sat there for over a day. Once again it was rejected, but this time it was completely my fault because I had inadvertently broken a node link in a UMG menu on the last fix… and of course it affected the IAPs and they rejected it with the same comment about broken IAPs. I submitted once again and it took about five days in Waiting for Review and a few hours in In Review and it was finally approved. So all in all it took from March 4th to Mar 22nd to get it reviewed and approved. Though, granted, one of those cycles was completely my fault.

The funny thing here is that once it actually did go live I noticed another issue with Leaderboard updates, as well as the fact that it still isn’t receiving ads. Apple didn’t check any of that since they are apparently overly-concerned with whether your IAPs work and they can get their 30% cut heh. No worries, but I fixed a few things and I changed the category and keywords to not mention Family or Kids (I heard ads will get disabled that way) and have now submitted a v1.1 update and am waiting… patiently… for it to be reviewed. It’s a good thing this is just for fun because the waiting is painful. I don’t know how people who rely on the App Store for income cope.

The other interesting thing about the App Store is that there is no New Apps section. If you don’t do any kind of marketing, don’t expect anyone to download your app. I’ve had 16 people download this game… and most of them were friends and family because I posted it on my Facebook. I don’t see how anyone could find the game otherwise. Again, good thing I did this just for fun because otherwise it would be extremely frustrating.

So, don’t be discouraged, it wasn’t that bad and my comments above were mostly just for humor’s sake. Just have patience.

A quick followup on this topic: The iAd issues I was having were due to the fact that Apple has discontinued the iAd program and isn’t accepting any new apps. I did see the original notice about this early this year, but as many people have noted, there was a lot of confusion around whether this was just the peer-to-peer app ads or iAd in general. Well, after emailing Apple support, they sent me a response (form letter) stating that my app wasn’t showing ads because the entire program is being discontinued. Which is frustrating since the test ads were working just fine.

So, sadly, I had to go back and rip out iAd completely. This wasn’t difficult, but work and real life have been crazy so I hadn’t gotten around to it until just recently. Adding the AdMob SDK using their framework was pretty straightforward and I had both banner and interstitial ads up and running via custom C++ code, but then I ran into the issue that my executable was too large. Turns out I had chosen to a minimum iOS version of 6.1 when I originally submitted my app without thinking too much about it. My game doesn’t use any particularly advanced features of iOS so that seemed a safe bet. This is fine, except! the requirements on a 6.1 app is that the embedded executable cannot be larger than 80M and due to the fact that Apple now requires arm64 in your executable, mine was consistently clocking in at 81M after packaging no matter what I tried.

Increasing the minimum required version to iOS 8.0 allowed me to upload the app to iTunesConnect, because Apple, in their infinite wisdom, realizes that they were going to run into this size issue now that they require arm64 and increased the limit for more recent versions. However, when I went to submit it iTunesConnect rejected it because you cannot increase the minimum version of an app because someone might have installed it on an older version… even though no one who had installed it had a version less than 9.0 according to their analytics. So, since I didn’t want to make a completely new version of the app and sunset the ‘old’ one, I went back to attempting to get the executable size down.

In the end, after trying many different things to reduce the size, I was able to upgrade to UE4.11 (I had frozen my code at 4.10 on release), which automatically set the minimum version to iOS 7.0 on packaging, and iTunesConnect finally accepted my submission for some unknown reason even though the executable was still 81M. After thoroughly testing it out via TestFlight on a few different devices I then submitted it for review.

So, lessons learned? Be very careful in setting your minimum iOS version, don’t use iAd, and keep in mind that UE4 iOS executables are very large.