Cordova-plugin-background-geolocation: App Store Rejection - Prefs Non-Public URL Scheme

Created on 31 Mar 2018  路  14Comments  路  Source: mauron85/cordova-plugin-background-geolocation

Your Environment

  • Plugin version: Latest
  • Platform: iOS
  • OS version: N/A
  • Device manufacturer and model: N/A
  • Cordova version (cordova -v): Latest
  • Cordova platform version (cordova platform ls): N/A
  • Plugin configuration options: N/A
  • Link to your project: N/A

Context


Apple Rejection Notice:

Your app uses the "prefs:root=" non-public URL scheme, which is a private entity. The use of non-public APIs is not permitted on the App Store because it can lead to a poor user experience should these APIs change.

Upon scanning all plugins and source of our App, the only area using prefs:root=.... is this one.

Expected Behavior


The plugin should use only public API's so rejections do not occur.

Actual Behavior


The plugin uses non-public API's so rejections do occur.

Possible Fix


I havn't reviewed a potential fix as of yet, however simply stripping the functionality out that makes use of this would be the first step.

Steps to Reproduce


  1. Use the plugin.
  2. Submit an App to the store.
  3. Get rejected.

Context


I was trying to submit an App (infact, many Apps that use this plugin), all of the Apps had the same rejection today.

Most helpful comment

PR was merged and version 2.3.6 has been released.

All 14 comments

I guess this is related to this PR: https://github.com/mauron85/react-native-background-geolocation/pull/158/files

I will remove it.

That makes sense, as either way, Apple are still against it. Another line from the rejection below...

"Next Steps

To resolve this issue, please revise your app to provide the associated functionality using public APIs or remove the functionality using the "prefs:root" or "App-Prefs:root" URL scheme."

Can I ask when the next version with the fix in place will be available?

fixed in 3.0.0-alpha.23. thank you for reporting

I have the same problem and my app was rejected from the Apple Store yesterday due this problem. I am using cordova-plugin-mauron85-background-geolocation 2.3.3 "CDVBackgroundGeolocation".
Have you checked that the problem is solved and now the apps are not been rejected anymore because of this?
Thank you.

@manuelsanchezaponte

This particular private URL-scheme was removed in 3.0.0-alpha.23, so I assume the Apple cannot use the exactly same reason to reject your app anymore.

However your rejection reason has to be different. Version 2.3.3 is not using this private scheme, but instead prefs:root=LOCATION_SERVICES, which was never private as far I know (it just stopped working in iOS 10 or 11).

Thank you for your replie,

When Apple rejected my app and told me the reason: "Your app uses the "prefs:root=" non-public URL scheme, which is a private entity. The use of non-public APIs is not permitted on the App Store because it can lead to a poor user experience should these APIs change.

Continuing to use or conceal non-public APIs in future submissions of this app may result in the termination of your Apple Developer account, as well as removal of all associated apps from the App Store.

Next Steps

To resolve this issue, please revise your app to provide the associated functionality using public APIs or remove the functionality using the "prefs:root" or "App-Prefs:root" URL scheme."

I didn't know what they were talking about. I googled it and I found this thread. I am using this plugin in my app, so, I asume that probable, this is the reason why they rejected the app.

I will try to use the version 3.0.0-alpha.23.

Thank you.

Manuel.

Hello again,

I checked my app and you were right, in the code I found "prefs:root=LOCATION_SERVICES".

But now I have updated my plugin to the 3.0.0-alpha.21 (not 23), and now there is no "prefs:root=LOCATION_SERVICES" on the code, so, I have just resubmitted the app to the Apple Store. Let's hope for the best this time!

Thak you,

Manuel

Really use alpha.23. 21 is using private scheme.

I have exactly this problem with version 2.3.5.
Its the first time my app has rejected with this plugin.
Apple said :
"Your app uses the "prefs:root=" non-public URL scheme, which is a private entity. The use of non-public APIs is not permitted on the App Store because it can lead to a poor user experience should these APIs change.

Continuing to use or conceal non-public APIs in future submissions of this app may result in the termination of your Apple Developer account, as well as removal of all associated apps from the App Store.

Next Steps

To resolve this issue, please revise your app to provide the associated functionality using public APIs or remove the functionality using the "prefs:root" or "App-Prefs:root" URL scheme.

If there are no alternatives for providing the functionality your app requires, you can file an enhancement request."

What do I need to do? Update plugin to 3.0.0 ?

I am stuck with v2.3.5 as I am using Ionic platform, and they are not ready for v3+ yet.....
We really need you to comment the prefs:root line in version 2.3.5 for any Ionic apps to use background-geo.. please do this for us!

PR was merged and version 2.3.6 has been released.

Hi, mauron i dont see the 2.3.6 release.

@MgBeatzDev I also don't see it on GitHub releases but that's the version which gets installed if you execute ionic cordova plugin add cordova-plugin-mauron85-background-geolocation.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Ritzlgrmft picture Ritzlgrmft  路  6Comments

sasiadstar picture sasiadstar  路  4Comments

Shakti-Sharma picture Shakti-Sharma  路  3Comments

shyamal890 picture shyamal890  路  10Comments

kleeb picture kleeb  路  8Comments