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.

Same, 2 days ago my app was uploaded without problem but today suddenly i can't upload any of them.

And is with the same issue:

TMS-90338: Non-public API usage

tring uploading it all day, i even try erase and install xcode again but nothing helps.

i'm desperate pls help

Also getting the same issue: ITMS-90338: Non-public API usage

I was able to upload builds successfully a couple of days ago. Tried and failed to upload one today with minor changes...

ITMS-90338: Non-public API usage - The app references non-public selectors in NNNN estimatedProgress, initWithFrame:configuration:, initWithURL:configuration:, initWithURL:entersReaderIfAvailable:, isMainFrame, ...etc

Found this https://news.ycombinator.com/item?id=31648690 I think someone introduced a lookup issue in apples code validator.

Let's hope this is resolved pronto. Well at least Android is working (that was a passive aggressive dig).;

here's my error : __swift_objectForKeyedSubscript:, __swift_setObject:forKeyedSubscript:, appDidEnterBackground, canStart, identityToken, initWithFrame:configuration:, isMainFrame, navigationType, setNavigationDelegate:, setRequestedScopes:, targetFrame, userContentController

Same issue here using Expo 45.

The app references non-public selectors in Payload/.app/: callWithArguments:, estimatedProgress, frameInfo, initWithFrame:configuration:, isMainFrame, navigationType, setNavigationDelegate:, setProcessPool:, toDouble, toString, userContentController With error code STATE_ERROR.VALIDATION_ERROR.50 for id 353e04a2-e677-4adb-a43b-e9b455f29976

Same issue, using Expo 45. Does anyone get a workaround?

I have a similar issue :(

ITMS-90338: Non-public API usage - The app references non-public selectors in INTERmx: authorizationCode, createRequest, determineAppInstallationAttributionWithCompletionHandler:, estimatedProgress, identityToken, initWithFrame:configuration:, initWithURL:configuration:, initWithURL:entersReaderIfAvailable:, isMainFrame, isPassthrough, lookupAdConversionDetails:, navigationType, onSuccess:, removeValuesForKeys:completion:, setNavigationDelegate:, setProcessPool:, setRequestedOperation:, setRequestedScopes:, transform:, userContentController, viewManager, 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. For further information, visit the Technical Support Information at http://developer.apple.com/support/technical/

ITMS-90338: Non-public API usage - The app references non-public selectors in NHCSXH: authenticationDidCompleteWithError:, estimatedProgress, identityToken, initWithFrame:configuration:, isMainFrame, navigationType, onSuccess:, setColor:animated:, setNavigationDelegate:, setProcessPool:, targetFrame, toggleEditing:, userContentController, websiteDataStore

same error

I have the same problem. Using expo 45 and eas build 0.53

This is due to Apple have update their policy and you need to log in from the apple developer account and click on agree to new policy updates. then this will be resolved and try with a new test flight build.

ITMS-90338: Non-public API usage - The app references non-public selectors in FFS_NewAPPStore: currentSession, initWithFrame:configuration:, isMainFrame, navigationDelegate, setNavigationDelegate:, setProcessPool:, targetFrame, userContentController. 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

Same here. using epxo

TMS-90338: Non-public API usage - The app references non-public selectors in Frameworks/webview_flutter_wkwebview.framework/webview_flutter_wkwebview: estimatedProgress, initWithFrame:configuration:, isMainFrame, setNavigationDelegate:, targetFrame, userContentController, 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. For further information, visit the Technical Support Information at

Same issue ITMS-90338: Non-public API usage - The app references non-public selectors in tct-34: addParticipants:, determineAppInstallationAttributionWithCompletionHandler:, dismiss:, filterButtonAction:, fontWeight, initWithFrame:configuration:, isMainFrame, lookupAdConversionDetails:, navigationDelegate, relativeSize, setNavigationDelegate:, spanArray, spanArray_Count, underline, userContentController.

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!

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