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

Same here. I even tried with a git reset head to make sure it was exactly the same version. I'm using the latest version of capacitor, nothing else.

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 experiencing this issue this morning. A simple search of my project reveals many uses of these WKWebView APIs that are clearly public.

I suspect the issue is due to an issue with App Store builds linking against the freshly announced iOS16/Mac updates this morning. Unless those APIs have been outright banned today with no warning (unlikely), I'd put money on it being an Apple issue which they will resolve ASAP.

Sadly, we go through this every once in a while when a silly bug is introduced into the private API string compare list. My team is now blocked as well and it's not a good time for such a bug. Usually, this gets worked out by someone filing a RADAR. Given the blast radius, I'm assuming this has already been filed and hoping for a quick resolution. The longest I've seen was in 2020 for 10 days though.

I have the same problem with a project that was successfully built and published a couple of days ago. I know my comment does not help but just wanted to pitch it to get visibility that this issue is affecting many projects.

My project is on React Native and the new build that is failing is only a few lines different (and Javascript lines, not even native iOS). No new or upgraded dependences.

If it helps, there is this issue in the React Native project: https://github.com/facebook/react-native/issues/33789 It seems that the problem is not with a specific framework but with Apple, but that thread became quite active today so any news there might help.

Having this problem with instabug. Please fix apple that I need to do hotfixes

Same problem here. I was pushing app updates (small incremental changes) to testflight. I didn't do any change in packages. I was pushing OK until some time today.

The exact wording of the error message:

The app references non-public selectors in Payload/App.app/Frameworks/Capacitor.framework/Capacitor: __swift_objectForKeyedSubscript:, applicationNameForUserAgent, initWithFrame:configuration:, isMainFrame, setNavigationDelegate:, targetFrame With error code STATE_ERROR.VALIDATION_ERROR.50 for id 24e410ba-55a9-443c-bc9a-0e20ae7f76b2

Also the app validates just fine.

Hi, I got an email with this exact error, but my build is showing on App Store connect as ready to publish, all looks fine. Maybe they've just fixed this issue?

same here, this didn't start for us until today - no library/pod changes and all of the sudden apple is complaining about methods/selectors that are being used by pods we've used for years and successfully submitted app review

ITMS-90338: Non-public API usage - The app references non-public selectors in XXXXXXX: estimatedProgress, initWithFrame:configuration:, isMainFrame, navigationType, newSocketQueueForConnectionFromAddress:onSocket:, onSuccess:, setNavigationDelegate:, setProcessPool:, socket:didAcceptNewSocket:, socket:didConnectToHost:port:, socket:didConnectToUrl:, socket:didReadData:withTag:, socket:didReadPartialDataOfLength:tag:, socket:didReceiveTrust:completionHandler:, socket:didWriteDataWithTag:, socket:didWritePartialDataOfLength:tag:, socket:shouldTimeoutReadWithTag:elapsed:bytesDone:, socket:shouldTimeoutWriteWithTag:elapsed:bytesDone:, socketDidCloseReadStream:, socketDidDisconnect:withError:, socketDidSecure:, 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 http://developer.apple.com/support/technical/

Same here... I uploaded a build to testFlight on Friday, but today i get this error too when build my app using cross-platform framework Titanium.

The app references non-public selectors in Payload/Caixa Previdência.app/Caixa Previdência: callWithArguments:, dataChanged, estimatedProgress, frameInfo, initWithFrame:configuration:, initWithURL:configuration:, initWithURL:entersReaderIfAvailable:, initialURL, isMainFrame, isNumber, isObject, matchFound, navigationType, setException:, setNavigationDelegate:, setProcessPool:, targetFrame, toArray, toDictionary, toObject, userContentController, websiteDataStore With error code STATE_ERROR.VALIDATION_ERROR.50 for id ...

Having the same issue with react 0.65.1 with one of my apps and the other (same rn version) is not experiencing issue. It's also happening after minor updates (only chaging litterally one character and the version number)

We started having the same issue today.

Adding my specific error message here, which seems to be duplicated above, so that hopefully we are notified once the issue has been resolved:

ITMS-90338: Non-public API usage - The app references non-public selectors in ibble: __swift_objectForKeyedSubscript:, authorizedScopes, createRequest, estimatedProgress, isMainFrame, isPassthrough, newSocketQueueForConnectionFromAddress:onSocket:, onSuccess:, relativeSize, removeValuesForKeys:completion:, setNavigationDelegate:, setProcessPool:, setRequestedOperation:, setRequestedScopes:, socket:didAcceptNewSocket:, socket:didConnectToHost:port:, socket:didConnectToUrl:, socket:didReadData:withTag:, socket:didReadPartialDataOfLength:tag:, socket:didReceiveTrust:completionHandler:, socket:didWriteDataWithTag:, socket:didWritePartialDataOfLength:tag:, socket:shouldTimeoutReadWithTag:elapsed:bytesDone:, socket:shouldTimeoutWriteWithTag:elapsed:bytesDone:, socketDidCloseReadStream:, socketDidDisconnect:withError:, socketDidSecure:, spanArray, spanArray_Count, toggleEditing:, underline, 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 http://developer.apple.com/support/technical/

Like many we were good w/ a build and minutes later w/ no change other than meta-data things started to fail.

Same here after just a version bump.

Having a similar issue here. I last updated my Unity app less than one month ago, I've made very few changes to my code in that time.

Here's my error:

ITMS-90338: Non-public API usage - The app references non-public selectors in Frameworks/UnityFramework.framework/UnityFramework: applicationWillFinishLaunchingWithOptions:, callWithArguments:, didReceiveRemoteNotification:, estimatedProgress, frameInfo, initWithFrame:configuration:, isMainFrame, loadPlugin, navigationType, setNavigationDelegate:, setProcessPool:, toDouble, toString, userContentController.

Seems like I'm not alone, hopefully Apple is on this...

Thanks.

Also experiencing this issue as of today without any changes to my build process or code

Same problem. It seems to be something related to Apple itself.