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.

see the same issue today publishing my react native app to testflight

My error for react-native app: The app references non-public selectors: estimatedProgress, initWithFrame:configuration:, isMainFrame, navigationType, onSuccess:, permissionType, setColor:animated:, setHighlightsToday:, setNavigationDelegate:, setProcessPool:, targetFrame, userContentController, websiteDataStore With error code STATE_ERROR.VALIDATION_ERROR.50 for id b32bee6b-2b86-4717-9da7-1338ffc0e893

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

16

It's now working for me. Woohoo!

I got similar issue, I just do some mirror changes in my code, and I could submit it successful before 2 days.

ITMS-90338: Non-public API usage - The app references non-public selectors in XXXX: debug:, estimatedProgress, evaluateScript:, imageForKey:, info:, initWithFrame:configuration:, isMainFrame, navigationDelegate, navigationType, newSocketQueueForConnectionFromAddress:onSocket:, onSuccess:, parentFrame, setBundle:, setImage:forKey:, setNavigationDelegate:, setProcessPool:, setSelectionGranularity:, targetFrame, userContentController, warn:, websiteDataStore. 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.

Same thing happens here (react-native, expo) I created a thread here: https://github.com/expo/expo/issues/17768#issuecomment-1148036412

Having the same issue out of nowhere with my Expo builds now

Non-public API usage - The app references non-public

Same here. More information are welcome.

Maybe solved:

Some hours ago I had the same Issue!

Now I Updated Xcode to the latest version (13.4.1) and the issue is gone.

I hope this will help someone. :-)

Seems to be solved now for me! I did not update XCode. I think it was an issue with the way that Apple verifies their apps (see Developer Tools Engineer comment here: https://developer.apple.com/forums/thread/127678?page=6)... that is now fixed... yay. I wasted a day on this meaningless issue, but I'm glad that Apple fixed their problem within a relatively short 12 hour span and not 12 days!

Can't wait to migrate to iOS 16 😎 ❤️📲🧑‍💻

Yesterday I got the same issue after incrementing non-native code to my React Native project. Does anyone have any idea what is this about and how can I fix it?

Apple solved the issue, thanks.

Worked now with no changes in my code or build.

I can confirm that, for us, the issue has ben solved by Apple. We could upload an app with the same code that was rejected yesterday.

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