ITMS-90338: Non-public API usage automatic refuse

  • 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.

  • I'm also seeing this issue as of today without adding any new packages.

  • 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).;

Apple Recommended

  • Thanks a lot. ^^

  • it worked, thanks!

  • Thanks for the fix. I just uploaded a new build and it works!

Replies

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.

  • This is a pretty ridiculous comment. Cross-platform frameworks aren't "full of private APIs" and current rejections are of clearly public APIs due to broken processing on Apple's side. As for taking responsibility to fix Apple's problems, how is that even remotely possible? Apple doesn't even have public bug trackers, how could those projects possibly identity and fix Apple's problems?

  • This has nothing to do with these platforms being cross-platform, and they aren't "full of private APIs"

    Last time I checked Apple didn't even have a public bug tracker, so how would third party projects even attempt to fix any issues like this?

Add a Comment
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?

  • Yes, I needed to make a change to the store description for an app, so I used the same build that was approved over the weekend and bumped up the version number. I didn't change anything about the build except the version number, but got this rejection today.

  • Same problem here! Only since tonight, I think a fix coming from Expo will arrive in the next few hours

  • Same problem here! Only since tonight, I think a fix coming from Expo will arrive in the next few hours

Add a Comment

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

  • I think a fix coming from Expo will arrive in the next few hours, might be because of iOS 16

Add a Comment

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.

  • Hi, did you get any response for this? Thanks!

Add a Comment

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 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
  • In Xcode we used "Validate App" and it says App "App" was was successfully validated.

Add a Comment

Same here, an app that has been releasing updates without issues for months. Even 2 days ago, a testflight version successfully uploaded, but today it just failed after simple (non native) changes.

TMS-90338: Non-public API usage - The app references non-public selectors in zinspector3: estimatedProgress, initWithFrame:configuration:, isMainFrame, isPassthrough, navigationType, onSuccess:, removeValuesForKeys:completion:, setNavigationDelegate:, setProcessPool:, targetFrame, userContentController, websiteDataStore.

Did apple turn on a setting that bans all these out of the blue? Or did someone add a "not" condition in their code and now everything is flagged?

  • experience the same issue. started today seemingly with no changes to the codebase or any packages that would make a difference.

    here's our list of non-public api potential issues: Non-public API usage - The app references non-public selectors in Trackster: applicationNameForUserAgent, dataTypes, determineAppInstallationAttributionWithCompletionHandler:, initWithFrame:configuration:, isMainFrame, lookupAdConversionDetails:, navigationType,

  • ITMS-90338: Non-public API usage - The app references non-public selectors in Wy_FindCoach_Coach: estimatedProgress, initWithFrame:configuration:, isMainFrame, setBundle:, 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

  • 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.