Thursday, September 29, 2022

Check Your App IDs for Unused Capabilities

Jeff Johnson:

When I submitted the app to App Review, Apple silently added the game center entitlement to my app, even though the app didn’t have the entitlement when I submitted it. And then App Review rejected me for it!


While I was looking through my App IDs, I also found that the iOS version of StopTheMadness had the Push Notifications capability enabled. The app doesn’t use push notifications. So I’ve disabled that one too, in case App Review is looking for more rejection reasons.

I recommend that App Store developers go through your App IDs and disable any unused capabilities, otherwise you may be receiving unexpected rejections of your submissions.

This reminds me of the time my app kept getting rejected for crashing at launch, when that never happened on my Mac. After several months and a DTS incident, we eventually determined that a bug in App Store processing was removing an essential entitlement from the build that I had submitted before passing it along to App Review.

It’s true that when App Review identified an issue with my submission, I was given an opportunity to address the issue in my next submission, without having to fix it immediately. However, it’s false that my bug fixes were not delayed. I received the rejection email from App Review at midnight my time, after I had already gone to bed. I saw the email in the morning and replied to App Review, but then it took four more hours for my submission to go back into review. So there was a delay in approval of more than ten hours.


Update (2022-11-02): Jeff Johnson:

Closely inspecting the contents of the app bundle, I discovered a stale provisioning profile that still had the Game Center entitlement. The problem, though, is that Xcode is supposed to automatically manage the provisioning profile, so there didn’t appear to be any way for me to manually regenerate it.


You can drag the document proxy to reveal the location of the .provisionprofile file, which turns out to be in the ~/Library/MobileDevice/Provisioning Profiles/ folder. So all you have to do is quit Xcode and delete the file.

Comments RSS · Twitter

Leave a Comment