Developers MUST use Apple's API to prompt user rating & review

I’ve heard this too… Scott your plugin works great.  I’ve got it set up to show if the user has iOS 10.3 or higher.

I will say this…  using the new rate/review popup that’s built-in to Apple is WAY better than using the previous method that takes users out of the app to the App Store.  As far as capturing positive ratings, I’ve experienced at least 10x better results per app I’ve integrated this in.

My opinion on this remains unchanged from my June 12 post above.

  1. Use Scott’s plugin. It’s free. It does what Apple wants.

  2. Our native.showPopUp(“rateApp”) requires you to show a UI to ask the user to rate the app. Apple wants to control the UI presentation. Our API only comes into play after the user choses to rate the app. We don’t have any thing to fix.

Simply use Scott’s plugin. If  you detect your on 10.2 or earlier, you can present your own rating UI that calls our popup if needed. 

Rob

The submit button has been disabled.

Is there an option I does not know?

Or does Scott’s plugin need an update?

While testing the submit button is disabled.

Hi Ben,

In specific, which API/feature would you be calling in Corona to face potential rejection?

Brent

@brent I think the OP means is this

“Use the provided API to prompt users to review your app; this functionality allows customers to provide an App Store rating and review without the inconvenience of leaving your app, and we will disallow custom review prompts.”

In other words does **native.showPopup(“rateApp”, settings) **comply with the new Apple legislation or are core changes needed?

Hmmm… I vaguely remember some issue with that a few years ago, but I don’t recall the context. We removed the “rateApp” option from that API’s documentation, which must have been for a specific reason (again, I can’t remember the context at the time). I seem to recall it worked but had some unpredictable flaws.

In any case, to be fully compliant, you should start using Scott Harrison’s “Review Popup” plugin for iOS app ratings.

https://marketplace.coronalabs.com/plugin/review-popup

Hope this helps,

Brent

@brent? rateapp is working just fine even if the docs do not reflect this.  Scotts plugin is for iOS 10.3 but what about iOS 10.2 or android or amazon?

Mega confused now

Based on the article it sounds like you have to use this api https://developer.apple.com/documentation/storekit/skstorereviewcontroller Which is what this plugin is https://marketplace.coronalabs.com/plugin/review-popup The person writing this article could me misinterpreting what Apple said. But if the article absolutely right it sounds like you have to use it. I don’t have any apps to test this with but I am waiting to hear from some developer guinea pigs. This article did not make it clear about what to do with 10.3 user.

We’re doing research into this now. It doesn’t seem likely (or even possible) that Apple can enforce a feature only available on 10.3, when users have devices still running versions of iOS much older.

The possible misinterpretation (of the article) is that, it seems, they will be restricting variations of “custom” UI or URL redirection methods that don’t end up using one of the Apple methods, whether that be the traditional popup for ratings, or the newer in-app ratings feature.

I’ll update this thread as I narrow down the correct answer…

Brent

@Scott & Brent, my info was from https://developer.apple.com/app-store/review/guidelines/ specifically point 1.1.7

Not sure on the ramifications to core though with that clause? 

If Scott’s plugin uses the new API and doesn’t break older versions (or the API will gracefully fall back on iOS 10.2) then I suggest his code is included into core.

I have some information on this.

So basically it appears that Apple wants to control the presentation of rate dialogs going forward. Before you ever get a chance to call our native.showPopup() API you have to present something to the user to ask them if they want to rate your app. Our popup doesn’t ask that question it just opens the App store app and takes you to your app’s page. 

There is currently no Apple provided API to ask a user to rate the app pre-10.3. In 10.3 they have added a new API called “SKStoreReviewController”. I believe that Scott Harrison’s “Review Popup” calls this controller (https://marketplace.coronalabs.com/plugin/review-popup).

Since Corona builds with 10.3 and this plugin is available you should be able to meet Apple’s new requirements. However, things get a bit weird pre-10.3. I tried to run an app on a 9.3 device today that call’s Scott’s plugin. It seems to ignore the call to his .show() method. It works expected on my 10.3.2 iPhone. 

I don’t see how Apple can reject you since OS’s other than 10.3 are supported and 10.3 is the earliest OS where you can even begin to use SKStoreReviewController. I’ve not heard of anyone being rejected yet. 

Anyway, if you do get rejected, you have a path forward using Scott’s plugin. It’s currently free though he could change it at some point.

We plan to discuss this in the team meeting tomorrow, but perhaps the best thing to do for now is put in a test in your code and if you’re on an iOS 10.3+ device, show Scott’s plugin, if not show your current rate me dialog calling our popup to get you to the store. 

Now as for if our showPopup(“rateApp”) “works” is open to discussion. It does not call an error and the app store app is loaded to your app but it does not take you to the “Review and Rate” page, which it used to do pre-iOS 7. So “appStore” and “rateApp” are in effect the same thing. Some would argue that’s broken :-) 

We will let you know more when we know more.

Rob

Just to be clear I have no “current” plans. It does not make much sense to charge money for one simple api call.

Thanks for that Scott!  

Thanks Rob for the clarification. 

+1 Scott!!!

Ben

Read this:

https://developer.apple.com/documentation/storekit/skstorereviewcontroller/2851536-requestreview

While you can’t pop up a custom rate dialog, you can still have a link directly to the review app page in the app store, when the user elects to review your app with a button tap. 

Note that the Corona-supplied showPopup(“rateApp” ) does not have the &** action=write-review** parameter so it just takes you to the app store page.

As of 10.3 (and maybe earlier 10.x), you can use this snippet to go directly to the review page:

local rateURL = "itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=" .. YOUR\_APP\_ID  .. "&onlyLatestVersion=true&action=write-review&pageNumber=0&sortOrdering=1&type=Purple+Software"            system.openURL(rateURL)

Thanks @Studycat2. This is very helpful information.

Rob

@Rob is there any chance of including this in a daily build?

Eventually. Engineering is aware of the issue, though I need to share some new info with them. They’ve agreed we need to fix it, so now its just a matter of working it into their priorities.

Rob

Hi Scott,

when I’m testing a build on a device, I get the rate app window, but if I test the same version from TestFlight, the window won’t appear…