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.