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.

This is a common problem with 3rd party, cross-platform frameworks. Apparently, they are full of private APIs. They may be configured to be enabled only in debug builds. Check your build settings to see if you have debug builds enabled. However, this would mean that the version you submit to the store is radically different than the version you are developing and testing. The problem could be something other than a DEBUG/RELEASE setting.


I'll end with the question I always ask and that has never, to this day, received a response: What does Cordova and Ionic support say when you contact them and ask about this problem? They are the ones giving you code that is being rejected. Why are they never have any responsibility to fix these problems? It's a mystery.

Hello,
I am experiencing the same problem. I only made some basic code change to my App so I can release a new build. Minor changes after I submitted the App, I got an email with these errors also.
Portion of the error msg:
ITMS-90338: Non-public API usage :
 behaviorTypes, convolutionState, discoverAllContactUserInfosWithCompletionHandler:, discoverAllContactsCompletionBlock, discoverUserInfoWithEmailAddress:completionHandler:, discoverUserInfoWithUserRecordID:completionHandler:, discoverUserInfosCompletionBlock, displayContact, drawableResizesAsynchronously, encodeToCommandBuffer:sourceImage:convolutionState:, encodeToCommandBuffer:sourceImage:destinationImage:state:, getProperty:onChannel:responseHandler:, hasProperty:onChannel:responseHandler:, initWithEmailAddresses:userRecordIDs:, initWithMIDIEntity:dataReadyHandler:

This happens to me too only since some hours ago for two of my projects. I submitted one of them this morning successfully already - only made (really) minor changes since then.

Did something change? Maybe it has something to do with iOS 16 being revealed some hours ago? Is anyone experiencing similar problems out of the blue since today?

I have this error in my project today and need to push out a new version today? Anyone have any ideas?

Same here. Just began today (for seamlingly no reason)

Also having the same issue, just started seeing this when I attempted to deploy today. Super frustrating, it's nearly impossible to understand or debug.

I am experiencing the same issue. I was able to push a build to TestFlight this morning and made changes (no new libraries/packages were added) to the code that I wrote. Hope it will get fixed soon.

Same issue using Flutter deployment, got

  • ITMS-90338: Non-public API usage - The app references non-public selectors in Frameworks/webview_flutter.framework/webview_flutter: initWithFrame:configuration:, isMainFrame, setNavigationDelegate:, userContentController.

Tried to deploy to TestFlight but was unable to. Hopefully this gets resolved.

Having the same issue with flutter as Bleik_Urrego

I'm also experiencing the same issue as of only a few hours ago. I was able to successfully submit builds to the app store as of this morning but something changed a few hours ago.

Same to me... ITMS-90338: Non-public API usage - The app references non-public selectors in Frameworks/Capacitor.framework/Capacitor: applicationNameForUserAgent, initWithFrame:configuration:, isMainFrame, setNavigationDelegate:, targetFrame.

Same issue here, nothing has changed in the app in the area they are complaining about.

Same to me... ITMS-90338: Non-public API usage - The app references non-public selectors in Frameworks/Capacitor.framework/Capacitor: applicationNameForUserAgent, initWithFrame:configuration:, isMainFrame, setNavigationDelegate:, targetFrame.

Any solution for this?? Thx!

Having the same issue with expo (eas-build).

We are also seeing this issue using ionic 5 builds that were working well until this afternoon:

The app references non-public selectors in Payload … id 499c2121-51c7-4b83-8238-5ffaa2ab58a8
ITMS-90338: Non-public API usage automatic refuse
 
 
Q