… We identified one or more issues with a recent delivery for your app.
The words no developer wants to read. After submitting an update to the draconian institute we know as Apple, I was surprised to receive an email after a few minutes advising that the build failed on multiple items.
- Non-public API Usage
- Missing Purpose String in Info.plist (multiple)
What didn’t make sense, the changes between the last update a few days ago and this one was minimal, and that last one went through without any problem. Was it something Apple had introduced in preparation for iOS 16? None of the Xamarin libraries used had received an update. What could have changed? I knew there was no use of non-public API’s and certainly I wasn’t accessing contacts, or Bluetooth tech, nor was I using push notifications.
Then I noticed that the build had been created as a Debug version, not Release. Surely it couldn’t be that simple? Yes it could. After recreating the .ipa as a Release build, resubmitted it and App Store Connect was happy again.
I hope this simple oversight helps someone else in the future, and that you don’t waste time trying to find all the non-compliant usages in your code!