Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bug: iOS ITMS-90338: Non-public API usage #5661

Closed
hussainarthuna opened this issue Jun 6, 2022 · 31 comments
Closed

bug: iOS ITMS-90338: Non-public API usage #5661

hussainarthuna opened this issue Jun 6, 2022 · 31 comments

Comments

@hussainarthuna
Copy link

hussainarthuna commented Jun 6, 2022

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

@paulovargatt
Copy link

same problem

@mlynch
Copy link
Contributor

mlynch commented Jun 6, 2022

We're aware of this and unsure if this is a legitimate issue or a bug on Apple's end. Seeing reports of this in other ecosystems outside of Capacitor/Cordova

@mlynch
Copy link
Contributor

mlynch commented Jun 6, 2022

Looks like it could possibly be an issue on Apple's side as these selectors are all public facebook/react-native#33789 (comment)

@paulovargatt
Copy link

I believe apple is under maintenance https://developer.apple.com/system-status/

@hussainarthuna
Copy link
Author

Thanks, @mlynch for the Quick response. Really Appreciate it.
Yes, I saw other platforms are reporting the same issue.

@pedrovmc
Copy link

pedrovmc commented Jun 6, 2022

Same on Flutter

@tonga54
Copy link

tonga54 commented Jun 6, 2022

same problem

@masonicboom
Copy link

We're aware of this and unsure if this is a legitimate issue or a bug on Apple's end. Seeing reports of this in other ecosystems outside of Capacitor/Cordova

@mlynch is Ionic working with Apple on this, or should individual devs escalate with Apple to get them focused on it?

@mlynch
Copy link
Contributor

mlynch commented Jun 6, 2022

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

@bazuka5801
Copy link
Contributor

same problem

@fohlin
Copy link

fohlin commented Jun 6, 2022

We're experiencing the same issue. Thanks the quick confirmation @mlynch and for everyone's attention on this.

@DanielPipa2
Copy link

same problem

@RRGT19
Copy link

RRGT19 commented Jun 6, 2022

Same

@lentyaishe
Copy link

lentyaishe commented Jun 6, 2022

Sort of potential workaround till it will be officially fixed?..

Searched the resulting code by Ionic build for applicationNameForUserAgent and isMainFrame (other strings did not match anything) and 1 instance for isMainFrame (line 107 was found) in WebViewDelegationHandler and 3 instances of applicationNameForUserAgent in CAPBridgeViewController (lines 115-120) (all searches in xCode workspace). Removed all these lines and the build magically got published.

Found on StackOverflow some thread from 2019 that also blamed (then) cordova-web-view-plugin..

Not sure about how bad is removing those lines of code.. But yet at least some sort of a solution if at all..

@rajauzair273
Copy link

same problem

@Jack-G-Smith
Copy link

+1 having this issue as well. does look to be linked to WebView usage, but that API is almost certainly public so I think it's a problem on Apple's side. Hopefully they fix it soon...

@mleusink
Copy link

mleusink commented Jun 7, 2022

Same problem

@stuartmorgan
Copy link

that API is almost certainly public

There is no "almost" here; you can go read the public docs for these methods in Apple's public documentation, or in Apple's public headers that are part of the SDK. Where they have been since iOS 8.

@beonde
Copy link

beonde commented Jun 7, 2022

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.

@Jack-G-Smith
Copy link

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

@trinhdh
Copy link

trinhdh commented Jun 7, 2022

Same problem. So many of my clients are waiting on this release.

@georgekung
Copy link

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.

@OtherCarlos
Copy link

Hi developers, I experience the same issue abode. Friday I upload an App successfully to TestFlight even today in the morning I upload the same App with a few changes on Typescript/Angular on my Capacitor App. Suddenly uploading a third minor change just 5 hours ago I get the same email over and over again:

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

The funny thing it is that my Xcode show me Success uploaded App but App Connect reject me the version and send me the email.

Xcode 13.0
MacOs BigSur

@thuliumsystems
Copy link

thuliumsystems commented Jun 7, 2022

same problem :(

i cannot even upload my app

The app references non-public selectors in Payload/App.app/Frameworks/Capacitor.framework/Capacitor: applicationNameForUserAgent, initWithFrame:configuration:, isMainFrame, setNavigationDelegate:, targetFrame With error code STATE_ERROR.VALIDATION_ERROR.50 for id e4a80a92-8d25-45f9-bd84-

@paulocoutinhox
Copy link

Hi,

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

Thanks.

@trinhdh
Copy link

trinhdh commented Jun 7, 2022

I confirmed that It backs to work. I have just resubmitted 2 apps and it works as it should be.

Thanks for quick response.

@rdlabo
Copy link
Contributor

rdlabo commented Jun 7, 2022

me too!! Thanks!!

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

@jcesarmobile
Copy link
Member

This was a problem on Apple backend, it’s fixed now

"The issue has been resolved on the app validation backend. Please try resubmitting. Sorry for the trouble."

https://developer.apple.com/forums/thread/127678?answerId=715975022#715975022

@TannerPlauche
Copy link

Thank you for sharing and updating. 🙏 👍 ❤️

@bhavikgoyal
Copy link

same issue

@jcesarmobile
Copy link
Member

This was a problem on Apple servers and was fixed long ago (by Apple)
If you are facing a similar problem, report a new issue and provide a sample app so we can verify you are not using non public APIs in your app.

@ionic-team ionic-team locked as resolved and limited conversation to collaborators Jul 13, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests