TMS-90338: Non-public API usage - The app contains one or more corrupted binaries.

Greetings,

Trying to submit another build of my app to TestFlight, and while the first submission a few weeks ago was accepted and successfully passed the first TestFlight review for external testing, subsequent builds are now failing with that error either while uploading the app, or after it's uploaded and its state is "Processing".

This is frustrating because without knowing the name of the private API being claimed that the app is using I have no clue as to where to even look.

While I know that I'm not using any private Apple APIs in the app, I do link with 12 pods, so perhaps one of those pods is now using an Apple private API?

The last action I remember taking after first successful submission, is to ensure that I could debug on an iOS simulator, since I'm on an M1 Mac and no longer on an Intel mac. Maybe that has something to do with it?

Aside from opening a TSI, any suggestion as to how I can find the culprit? Or if it's a corrupted binary, how do I find out why or what is corrupted?

If need be I will post the list of pods which I'm using.

Thanks in advance

Answered by ForumsContributor in

Update: Still getting this issue no matter what I try to do. I'm now wondering if it's really an issue in my app or if it's app store connect that is problematic. A quick look at system_status reveals that App Store Connect is having App Upload and App Processing Issues. I'll wait until that goes back to normal before submitting again

Other reasons why I think the issue is with App Store Connect is if I use the "Validate App" button the app successfully passes.

I've had issues all day. Either it failed during uploading, or finally, just now it completed uploading....but then I got the same dreaded email as you did above. I also have no problems with the Validate App option.

I haven't change any code I can think of that should cause this. Unless I was doing something naughty that Apple have now disallowed. In any case, the message is useless as it refers to "APIs listed above" but there aren't any!

"If method names in your source code match the private Apple APIs listed above, altering your method names will help prevent this app from being flagged in future submissions. In addition, note that one or more of the above APIs may be located in a static library that was included with your app"

I generated a new archive and instead of using the organizer to upload the .ipa file, I exported it and used the transporter to successfully upload it. But it's still failing the processing phase and sending me an email about using private API's listed in it, which are not really listed at all.

Looks like I have to wait until all app store connect issues are resolved. If there is a private api being called, I'm hoping that once the App store connect issues are resolved on Apple's side, I will finally get the list of private Apple APIs that are being used by my app or some pod

Great news! I did not get the ITMS-90338 error email and my app was approved for internal testing. Can't submit it for external TestFlight review because my apps page is blank at the moment, so I'll have to wait until tomorrow

Accepted Answer

All is good again. it was an app store connect issue that was always generating a false positive for private API usage.

TMS-90338: Non-public API usage - The app contains one or more corrupted binaries.
 
 
Q