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.

The issue happens almost two weeks... still getting Non-public API usage

In my case, I got an error with Inon-public selectors instead of non-public AP during validation.

I didn't have this problem a month ago.

We have reported this to Apple using feedback assistance.

https://developer.apple.com/forums/thread/713574

the message I got yesterday (12th Sept 2022) was: ITMS-90338: Non-public API usage - The app references non-public selectors in Advantis.iOS: checkFocusGroupTreeForEnvironment:, commissioningComplete:, pairDevice:address:port:discriminator:setupPINCode:error:, 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

Is this really STILL ongoing???

Still here: (React native)

ITMS-90338: Non-public API usage - The app references non-public selectors in App: _isKeyDown, _modifiedInput, _modifierFlags, handleNotification:, onSuccess:. 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.

Suddenly having same/similar issue with new builds, today, Sept 22 2022:

The app references non-public selectors in authenticationDidCompleteWithError:

App has previously uploaded many versions with no issues, no new changes even remotely connected to any authentication, and in fact my app doesn't even use any such method so must be in a third-party library (RealmCocoa or Google Firebase is my guess).

Make sure that you are distributing your app using the release scheme instead of the debug scheme.

To configure your app to be built using the Release scheme, go to Product → Scheme → Edit Scheme. Then set the Build Configuration dropdown to Release.

Hi there everyone. I am just a regular old general public kinda person who somehow ended up here and would greatly appreciate information on how to get into the Secure Enclave and how to absolutely **** up the boot that's been added without my consent. Thanks my friends!

Finally, I used the production build to upload the IPA to testflight and its success in the expo project.

My previous using eas build --profile development --platform ios and it show above error and now I am using the expo build:ios --release-channel production and it success upload to test flight

This issue is unresolved - we are hitting the same issue when we include build 107 of WebRTC built from source in our app and yet earlier builds exhibited no such issue. "The app references non-public selectors in Frameworks/WebRTC.framework/WebRTC: terminate" . We will submit a TSI with more details.

Had the same issue yesterday, had been uploading develop app for 2 years! and this is the first time that I get this. It a random backend issue? Or do we need to change something?

Hi, we are facing the same problem, however in the Apple Store Connect email it does not show what would be the point to correct.

Hi we have similar issue with our VisionOS build using Unity, and XCode 15 beta 8

App Store Connect

Dear Developer,

We identified one or more issues with a recent delivery for your app, "Skatrix Vision demo" 0.1 (6). Please correct the following issues, then upload again.

ITMS-90338: Non-public API usage - The app references non-public symbols in Frameworks/UnityFramework.framework/UnityFramework: _ar_skeleton_get_skeleton_root_transform_for_joint. 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.

we can't remove this code because it's inside Unity package and it's needed to build the app, please let us know how can we fix that

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