capacitor: bug: iOS ITMS-90338: Non-public API usage

Bug Report

Capacitor Version

💊   Capacitor Doctor  💊 

Latest Dependencies:

  @capacitor/cli: 3.5.1
  @capacitor/core: 3.5.1
  @capacitor/android: 3.5.1
  @capacitor/ios: 3.5.1

Installed Dependencies:

  @capacitor/cli: 3.5.1
  @capacitor/core: 3.5.1
  @capacitor/ios: 3.5.1
  @capacitor/android: 3.5.1

[success] iOS looking great! 👌
[success] Android looking great! 👌

Platform(s)

iOS

Current Behavior

When Submitting the App to iOS the binary gets rejected and I receive the below email from Apple.

Dear Developer,

We identified one or more issues with a recent delivery for your app, “APP NAME” 1.0.3 (22). Please correct the following issues, then upload again.

ITMS-90338: Non-public API usage - The app references non-public selectors in Frameworks/Capacitor.framework/Capacitor: applicationNameForUserAgent, initWithFrame:configuration:, isMainFrame, setNavigationDelegate:, targetFrame. 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

Expected Behavior

App Should be uploaded successfully

Code Reproduction

Other Technical Details

npm --version output: 8.10.0

node --version output: v16.15.0

pod --version output (iOS issues only): 1.11.3

Additional Context

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Reactions: 27
  • Comments: 31 (7 by maintainers)

Most upvoted comments

Hi,

Message from Apple: “The issue has been resolved on the app validation backend. Please try resubmitting. Sorry for the trouble.”

Thanks.

same problem

@masonicboom please escalate if you’re able to, hearing from many developers is best!

me too!! Thanks!!

スクリーンショット 2022-06-07 午後3 22 23

Same issue using Cordova build. The iOS distribution/validator complain about the followings being non-public selectors: applicationNameForUserAgent, initWithFrame:configuration, isMainFrame, navigationDelegate, navigationType, setNavigationDelegate, setProcessPool, targetFrame, userContentController.

Exact same code distributed fine yesterday.

Just saw this in Apple’s recent email about new requirements… Section 3.3.43: Specified requirements for use of the Apple Pay APIs with WKWebView. Might mean this is intended?

Don’t think so. We do not use any Apple Pay APIs. Also, the error being thrown by Apple is naming API calls that are not related to Apple Pay APIs.

yeah, deleted the previous comment for that reason, hoped to avoid misleading discussion. Hopefully they can get it together soon, going to open a support ticket now…