Adam Cox
Adam Cox

Reputation: 3681

How to resolve app validation "The app references non-public selectors in Payload/MyApp.app/MyApp: _setAlwaysRunsAtForegroundPriority:"?

Just days ago I successfully upload Ionic app to Apple Store, and on this day I am receiving validation warning:

The app references non-public selectors in Payload/something.app/something: _setAlwaysRunsAtForegroundPriority:

While I was unable to resolve, I was able to upload app to App Store.

Does anyone know where it is documented or have any insights on how to resolve?

Thanks.

Upvotes: 24

Views: 12964

Answers (6)

Supriya
Supriya

Reputation: 581

ITMS-90338: Non-public API usage - The app references non-public selectors in XXXXXX: _setAlwaysRunsAtForegroundPriority:. 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. If you think this message was sent in error and that you have only used Apple-published APIs in accordance with the guidelines, send the app's Apple ID, along with detailed information about why you believe the above APIs were incorrectly flagged, to [email protected].

cordova plugin rm cordova-plugin-ionic-webview
cordova plugin add cordova-plugin-ionic-webview@latest

Upvotes: 0

user11803319
user11803319

Reputation:

This worked

The problem is related to webview.

cordova plugin rm cordova-plugin-ionic-webview
cordova plugin add cordova-plugin-ionic-webview@latest

Upvotes: 2

Nasenbaer
Nasenbaer

Reputation: 4900

rejected on Appstore now. July 3th 2019. Message:

We identified one or more issues with a recent delivery for your app, "appname. Please correct the following issues, then upload again. ITMS-90338: Non-public API usage - The app references non-public selectors in Sonnenbraeu: _setAlwaysRunsAtForegroundPriority:. 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 ...

I removed the complete line of _setAlwaysRunsAtForegroundPriority: as described above from code. Also the references to it. And yes, the app got released. BUT I don't know exactly the consequence of removing the property which sets the browser to foreground priority mode. I don't think its a good solution, its just a provisoric workaround to get released.

Upvotes: 1

Duncan
Duncan

Reputation: 351

Expanding on @Véger Lóránd answer:

The bug was re-introduced in the 4.1.1 version. Installing the latest version will get your app rejected. The solution for now is:

cordova plugin rm cordova-plugin-ionic-webview
cordova plugin add [email protected]

Upvotes: 20

I got a similar problem:

ITMS-90338: Non-public API usage - The app references non-public selectors in MyAppName: _setAlwaysRunsAtForegroundPriority:.

And the issue was caused by the following plugin: cordova-plugin-ionic-webview

To solve the issue update to the latest version with the following commands:

cordova plugin rm cordova-plugin-ionic-webview
cordova plugin add cordova-plugin-ionic-webview@latest

You can read more about it here: https://github.com/ionic-team/cordova-plugin-ionic-webview/issues/209

Upvotes: 10

fthkrtl
fthkrtl

Reputation: 37

this is only security warning caused by webview. you can ignore

Upvotes: 1

Related Questions