Tell HN: Apple rejecting cross platform apps (React Native, Flutter, Capacitor)

90 points by ratio11 ↗ HN
...Not on purpose, probably. This started immediately after their WWDC service downtime.

"Dear Developer,

We identified one or more issues with a recent delivery for your app, "App" 1.0.0 (2). Please correct the following issues, then upload again.

ITMS-90338: Non-public API usage - The app references non-public selectors in App: authorizationCode, createRequest, estimatedProgress, identityToken, initWithFrame:configuration:, isMainFrame, isPassthrough, navigationType, onSuccess:, removeValuesForKeys:completion:, setNavigationDelegate:, setProcessPool:, setRequestedOperation:, setRequestedScopes:, targetFrame, userContentController, viewManager, 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/

Best regards,

The App Store Team"

https://github.com/facebook/react-native/issues/31507

https://github.com/flutter/flutter/issues/105471

https://github.com/ionic-team/capacitor/issues/5661

https://developer.apple.com/forums/thread/127678

18 comments

[ 2.9 ms ] story [ 51.1 ms ] thread
so... they're not rejecting cross-platform apps because they're cross-platform, they're rejecting it because it either a) uses non-public APIs, or b) the internals share method/class names with non-public APIs...?
Correct. Their automated system is rejecting the builds. It seems to think they're using private APIs. This problem seems to be affecting users of all the major cross platform solutions, but it might not be exclusive to them.

Edit: This tweet is theorizing that it's an issue with WkWebView https://twitter.com/ThomasVidas/status/1533936319596007425

traffic on twitter, stack overflow, google etc open "trends.google.com" and you can see for yourself
So Apple is undermining the productivity of maybe millions of devs and related businesses just to inflate a few points in some marketing/pr metric shown in some presentation slide?

God, this sure is the most evil conspiracy theory I've ever heard.

(comment deleted)
I don't think this has anything to do with cross-platform apps or frameworks, since it's impacting a lot of other libraries as well as frameworks. Rather, it seems like their automated submission system has broken and is erroneously flagging WKWebView API usage as using private APIs.

Regardless, this looks to be a massive problem impacting tons of communities and any apps using web views. I hope Apple fixes it soon.

If you google for some of these methods this seems to be a periodically recurring thing. I can find references to similar reports on "removeValuesForKeys:completion" in 2020 and 2021 for eg., and those have some other overlapping method names.
This kind of glitch with the App Store happens every now and then when they accidentally flag public selectors as private.

It has nothing to do with cross platform frameworks aside from that they have many users who will be quick to complain, and who don't know anything about iOS development or what how code they're deploying actually works so that the errors are confusing to them.

What does the error message have to do with Apple rejecting cross platform apps?
(comment deleted)
(comment deleted)
Hi,

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

Thanks.

I mean I wouldn't be surprized if they did, but glad to see in comments that this is a glitch. I'm building an app now :D
just happened to me an hour ago. I rebuild the application without any changes and it was accepted without the issue
Off topic, but how does Tencent manage to enable installing "mini-apps" within its own mobile app? Does Apple and Google not object to it?