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 problem still exists for me:

ITMS-90338: Non-public API usage - The app references non-public selectors in ...: checkFocusGroupTreeForEnvironment:, commissioningComplete:, 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. For further information, visit the Technical Support Information at http://developer.apple.com/support/technical/

Having same issue for a Xamarin app, even after upload. Two weeks ago was fine and now a lot of errors not only ITMS-90338: Non-public API usage. :((

We've started to getting this today out of nowhere:

26c61a7b364f Asset validation failed (-19208)
 {
    NSLocalizedDescription = "The app references non-public selectors in Payload/HouzzPro.app/HouzzPro: appController, cancelTapped, didBecomeActive, rootView With error code STATE_ERROR.VALIDATION_ERROR.50 for id 88ff4f01-cd1f-4196-889e-26c61a7b364f";
    NSLocalizedFailureReason = "Asset validation failed";
}

So today the same issue for me, however not that specific as you guys have:

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.

This is also affecting us now. Same exact message with no details of what API. We are using Unity Cloud build and have been successfully building fine for some time. This started with last night's build. I have also emailed Apple's TestFlight Support with a heads up on this issue

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?

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