ITMS-90338: Non-public API usage automatic refuse

Hello,


We contacted Apple Developer Support due to an automatic message we receive when trying to publish a new version of our app



Dear Developer,
We identified one or more issues with a recent delivery for your app. Please correct the following issues, then upload again. 
ITMS-90338: Non-public API usage - The app references non-public selectors in Idealys: applicationWillTerminate,
 ddSetLogLevel:, localTarget, newSocketQueueForConnectionFromAddress:onSocket:, setOrientation:animated:,
 socket:didConnectToHost:port:, socket:didReadPartialDataOfLength:tag:, socket:didReceiveTrust:completionHandler:,
 socket:didWritePartialDataOfLength:tag:, socket:shouldTimeoutReadWithTag:elapsed:bytesDone:, 
socket:shouldTimeoutWriteWithTag:elapsed:bytesDone:, socketDidCloseReadStream:, socketDidSecure:,
 terminateWithSuccess, webSocket:didReceiveMessage:, webSocketDidOpen:

 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.
 If so, they must be removed. For further information, visit the Technical Support Information at http://developer.apple.com/support/technical/ 

Best regards,

The App Store Team


The problem is we do not understand what the issue is even when reading your automatic message.


How can we debug this ?

How can we identify the source of the problem ?

Do you have any idea of what the problem is ?


What we tried :

  1. We tried to re-publish the application we currently have on your store (production) with different build number => App rejected with the same automatic message ;
  2. We tried to disable one by one every cordova plugin (see the list below) => App rejected with the same automatic message ;
  3. We tried to look for every reference listed in the automatic message using XCode and grep => We found none of those ;
  4. We tried to upgrade cordova-ios => App rejected with the same automatic message ;


XCode version : 11.0

MacOS version : 10.14.6

Cordova-ios version : 4.5.5

Ionic version : 1


Best regards,

Answered by App Store Connect Engineer in 715975022

The issue has been resolved on the app validation backend. Please try resubmitting. Sorry for the trouble.

We too are using Xcode 13.4.1 and Unity 2021.3.5 with the following plugin: Facebook SDK, Firebase SDK, iOS Goodies, Advanced Input Field 2, UniWebView, DOTween and NativeShare. Until yesterday it was everything fine. This morning started problems... Hope it will back to works soon

Same issue here. Published successfully a year ago and now resubmitted with no major changes, only to get an error out of the blue - non-public API usage, binary errors etc. Then flags up something about STATE_ERROR_VALIDATION.10. Bitcode included as I see this has been a problem for some. Using Unity and XCode 13.3.1.

Same issue here. I'm using Unity and XCode 13.2.1.

Same issue here. I'm using Unity (2020.3.16f1) and XCode 13.4.1. Yesterday, the submission will work well but today no.

We're having the same issue using Unity 2020.3.18f1 and Xcode 13.2.1. The problem started yesterday and all submissions have failed since then.

Same issue. My version of Unity 2021.3.6f1 and XCode 13.4.1. Trying all that I can...

Yep, I'm using Unity 2021 and Xcode 13.4.1 and having the same issue.

I'm having the same issue with HMS SDK Framework in React Native:

ITMS-90338: Non-public API usage - The app references non-public selectors in Frameworks/HMSSDK.framework/HMSSDK: cropHeight, cropWidth, cropX, cropY, dataU, dataV, dataY, initWithBuffer:rotation:timeStampNs:, initWithURLStrings:, maxBitrateBps, newI420VideoFrame, sendData:, setCategoryOptions:, setInputImage:, setIsActive:, setIsAudioEnabled:, setIsEnabled:, setMaskImage:, setMaxBitrateBps:, setMaxFramerate:, setNetworkPriority:, setRid:, setScaleResolutionDownBy:, setStreamIds:, strideU, strideV, strideY, timeStampNs, toI420, videoSource,The app contains one or more corrupted binaries. Rebuild the app and resubmit.. 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. If so, they must be removed. For further information, visit the Technical Support Information at http://developer.apple.com/support/technical/

I'm not sure why this is occuring as everything was fine in the last build and not much has changed for this library.

It is confirmed that removing Unity will lead to a successfull build upload

I am getting this on Cloud Build and Unity. Is anyone getting this and not using Unity Engine or not using Unity Cloud Build?

Same issue. Everything was working until last night. Using Unity 2021.3.5f1 LTS and Xcode 13.4.1 -- not using Unity Cloud Build.

Think everyone using Unity is having this problem us included

Same issue with WebRTC library (using for our framework)

ITMS-90338: Non-public API usage - The app references non-public selectors in Frameworks/CallCenter.framework/CallCenter: connectionState, sdp, setIsAudioEnabled:, trackId,The app contains one or more corrupted binaries. Rebuild the app and resubmit.. 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. If so, they must be removed. For further information, visit the Technical Support Information at http://developer.apple.com/support/technical/

Same. Thought I was going crazy. One build worked yesterday and then with minimal changes it just stopped working. Tried so many things in the past 24hours ish. Glad to see I am not completely insane.

Unity version 2019.4. Xcode 13.4. Also switched over to cloud build on Unity in hopes that would fix it but it did not.

Same problem. I have uploaded some days ago, but, today, I can't send a new build of my app.

ITMS-90338: Non-public API usage - The app contains one or more corrupted binaries. Rebuild the app and resubmit.. 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. If so, they must be removed. For further information, visit the Technical Support Information at http://developer.apple.com/support/technical/

Xcode 13.4.1

Mac 12.4 M1

Native app with ObjC and Swift classes.

Facing the same issue since yesterday. Even though an update was successfully pushed just 1 day ago.

Same issue here! Please don't say that it was fixed because it's not. Just started this week, Unity, not cloud build. ITMS-90338: Non-public API usage - The app contains one or more corrupted binaries. Rebuild the app and resubmit

Same here,

ITMS-90338: Non-public API usage - The app contains one or more corrupted binaries. Rebuild the app and resubmit.. 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. If so, they must be removed. For further information, visit the Technical Support Information at http://developer.apple.com/support/technical/
  • macOS 11.6
  • xcode 13.0

Same here,

ITMS-90338: Non-public API usage - The app contains one or more corrupted binaries. Rebuild the app and resubmit.. 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. If so, they must be removed. For further information, visit the Technical Support Information at http://developer.apple.com/support/technical/

-xcode version: 13.2.1 (Latest Compatible Unity Cloud Build)

-unity version: 2020.3.32f1

Seems like the validation tool was fixed on the Apple side. We were able to submit a build containing Unity. Can anybody also confirm?

We are facing similar issue.. The app we are trying to upload is a sample camera app from Apple only. AVMulticamPIP sample. In the refusal email even though it says non-public API usage, no API names are mentioned for which it is refusing.

This is the email we got

Dear Developer, We identified one or more issues with a recent delivery for your app, "Perma Evidence Pro" 1.0 (1). Please correct the following issues, then upload again. ITMS-90338: Non-public API usage - The app contains one or more corrupted binaries. Rebuild the app and resubmit.. 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. If so, they must be removed. For further information, visit the Technical Support Information at http://developer.apple.com/support/technical/ Best regards, The App Store Team

Same here, nothing was changed from previous builds. Looks like an Apple bug.

Last time we received something similar to this it was on Apple's end and we just needed to wait it out for a day. Is anyone else hitting a similar problem right now?

We only made some small style updates so we're having a hard time thinking that it is something in our build!

Dear Developer, We identified one or more issues with a recent delivery for your app, "Shmoody: Improve Your Mood" 2.2.24 (210219). Please correct the following issues, then upload again. ITMS-90338: Non-public API usage - The app references non-public selectors in Shmoody: _isKeyDown, _modifiedInput, _modifierFlags, isPassthrough, onSuccess:, removeValuesForKeys:completion:, setHighlightsToday:, viewManager. 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. If so, they must be removed. For further information, visit the Technical Support Information at http://developer.apple.com/support/technical/ Best regards, The App Store Team

I am getting similar errors:

ITMS-90338: Non-public API usage - The app references non-public selectors in MedTextiOS: checkFocusGroupTreeForEnvironment:, commissioningComplete:, connectionTypesMask, pairDevice:address:port:discriminator:setupPINCode:error:, setConnectionTypesMask:, setListenPort:, sharedController, sleep:, test:, toggle:. 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. If so, they must be removed.

Minor change in our code, successful submission 10 days ago, and now this. Very frustrated with such an approach from Apple.

I just submitted a report to Apple asking for an update, has anyone else?

ITMS-90338: Non-public API usage automatic refuse
 
 
Q