So I have an app which is already on the app store and i’m now trying to implement the SKStoreReviewController.
I’ve added the logic for handling and showing the dialog via the request review method. But this dialog only appears 3 times on a fresh device and on other certain devices it’s not appearing at all.
It’s almost acting like the app is live on the app store. An addendum to this is once a user rates the app, will the popup dialog be shown again?
Although, it is not mentioned in documentation: No matter how many times you call the API, the system will only show up to a maximum of 3 prompts to the same user in a 365-day period. And it will be shown once for one version.
The alert is always shown in debug. Note, a user can disable rating alert at all going to Settings -> iTunes & App Store -> In-app ratings & review.
More information here.
Ensure that your device has an internet connection. For me it did not work when my device was in airplane mode.
Related
I have implimented SKStoreReviewController in My app. I just want to know how the functionality works. I need to satisfy below requirements.
I need to disply popup in all the 3 cases
For first 10 successful logins
After every 90 days
I don't want to disply rating popup never if he provide the rating.
How do I know if a user gave the rating and also I need to send
response to server if user gave the rating.
SKStoreReviewController submit button is active after your app is live in appStore. The submit button is automatically disable when you're running in debug mode. It's only active when you're launching your app in appStore. That is not mistake from apple or Xcode.
Thank you.
Apple provides some suggested best practices and sample code for requesting reviews.
In answer to your requirements:
This is definitely not best practice; after 10 successful logins might be a reasonable time to ask for a review, but asking each time the user logs in will probably just be annoying.
Again, asking after 90 days is probably a reasonable interval.
By design there is no indication to your app as to whether the review request was shown, nor whether a review was left.
You can link directly to the App Store page where the user can provide a review, however you still have no indication of whether the user actually left a review or simply cancelled out of the web page.
The sample code I linked to shows how to track whether you have requested a review for the current version of your app. You cannot know whether the user has actually reviewed the current version.
I've created app that connects iPhone to VPN(IKEv2) server. When I'm trying to connect to VPN first time it requires user permission in modal alert. Is there any way to change text of this modal alert? Didn't find any code in swift doing so. Info.plist keys, also don't contain something to do it. Is it possible? Moreover, I'm getting my app rejected by Apple App Review, because I don't properly explain to user why my app asks permission (I have privacy policy and terms of use in app, also I explain data collection in my app's description.).
Apple Review team:
We noticed that your app requests the user’s consent to access their
VPN but does not clarify the use of this feature in the permission
modal alert.
Please see attached screenshot for details.
UPD:
I've got answer for my appeal and now waiting for call.
Answer:
Hello,
Thank you for your response. Your call with an Apple Representative is
confirmed.
An Apple Representative will call you on the number provided within
the next 3 to 5 business days from today to discuss your app.
Best regards,
App Store Review
Okay, I've got call from Apple and they said:
It is new requirement for VPN apps to explain how does they collect
user data in permission modal alert, but Swift wasn't updated to do
so. That is why you have to show information about data collection in
view where you will show prompt or show your custom modal alert.
I've added my own alert that forces user to agree with privacy policy and get approved.
I've added text like "By starting VPN you agree with Privacy policy(this is link)" and get approved.
I have recently started developing Newsstand application and need to deal with the restoration of in-app purchases. There are cases resported that some users made unwanted "duplicated" purchase in the following situation:
There are two kinds of purchases in the app:
1. One year subscription which will allow users to have access to all magazines issued within the subscription period
2. Single specific issue purchase, which will allow users to buy specific issue they would like to access to
And the problem arises when:
User made an one year subscription
User install the Newsstand app on another device/re-stall after deleting the app
User purchase single issue which should be included in the subscription
In step 3, the user should have "owned" the issue he wanted to purchase and the purchase option for that specific issue will not be available, but since he/she didn't perform a restore, the app does not know the user has an active subscription which includes the targeted issue, as a result the user is charged for the specific issue while he/she should not be.
To deal with this, I am thinking of prompting the user to perform a restore upon first launch of the app after installation, but there are a few questions I would like to clearify and couldn't find any reference or documentation:
I was told that prior to iOS 9, the Newsstand app (the one which will have all contents of newsstand applications' contents showed up as a bookshelf) could auto sync/restore purchased contents of the iTunes account logged-in on the device, i.e. after installation and launch the app, the user will have all of his previous purchase there without manually performing a restore. Is this real and is there any documentation regarding this? Or is this related to certain settings related to AppStore's auto-download, etc? This is reported by one of the user and he claimed that he is very sure that he got all the contents without manually restoration after installing the app as he tested this on his iOS 8 device. I ran out of luck in finding and proofing this as I do not have any physical device with iOS 8 or before, and the simulator does not support purchase related API.
When performing restoration, under what circumstances the user will be prompted for password input? As sometimes I would proceed to restoration directly without password input, is this related to time passed since last password input?
Thanks!
I have been reading The Business of iPhone and iPad App Development: Making and Marketing Apps that Succeed (http://www.amazon.com/Business-iPhone-iPad-Development-ebook/dp/B004TMNSJK/ref=sr_1_2?ie=UTF8&qid=1340317546&sr=8-2&keywords=marketing+iphone+apps). The book is a little old (about a year at this point, which is a long time considering how long the app store has been around).
The book claims the Apple's iPhone development guidelines/rules state that an app must be fully functional. The book says that because of this rule, a "free" or "lite" version of an app cannot display buttons that appear to be functional but, when clicked on, prompt the user to purchase the full version of the app. For example, imagine a GPS app that has a button labeled "Give me turn-by-turn directions as I drive". If you click on the button, it just pops up a dialogue that says "Buy the full version to unlock this feature". According to this book, that app would be rejected by the Apple review team.
I have an app that allows users to download extra content with an in-app purchase. I would like to display the content as "grayed out". If the user clicks on the locked content, I want to display a popup that tells them how they can get the additional content. According to the book, this behavior will be rejected.
However, since this design is so important to my app, I've spent some time reading through all of the iPhone app guidelines, including the In-App Purchases guidelines, and I have found NOTHING that leads me to the conclusion that this sort of behavior is not allowed.
Since the app review process is currently sitting at about a week, I don't want to lose a full week of app purchases because of a rejection for this. Has anyone ever heard of this rule, and if so, can you please point me to it?
Thank you.
I had a "Free" or "Lite" app recently submitted (and accepted) to the App Store, where some UITextFields were greyed out and when touched, a UIAlertView was displayed . I don't know if this would be acceptable with buttons but it seems like more or less the same thing.
I think the book is probably right. Please check this link or read below.
The two most common reasons for application rejection are issues with core functionality and crashing. Core functionality encompasses the belief that customers rightfully expect all the features described in the marketing text and release notes to work as described, and likewise that all the buttons and menu items within the application will be fully functional (i.e., no grayed out buttons or notifications that a feature will be implemented later). Before you submit your app for approval, make sure that every aspect of your application is fully functional and that the marketing text and release notes correspond to the end user experience.
I am planning to submit an iPhone app for certain special purpose calculations. I want to add a legal disclaimer about the calculations somewhere so that the user can see it atleast once before starting to use the app. Should this go into the EULA that may be submitted as part of app submission process? Or should that be a one time screen shown when the app is started first time? What is the right way?
Thanks for responses.
The EULA would be submitted as part of your delivery to the App Store, so as to be displayed alongside the app’s entry in the Store (so the user can read prior to purchase).
But you’d also be well-advised to display the very same language the first time the app is launched, prompting the user to “Accept”. (Ideally, if it’s more than one page, you can make it so the Accept button is disabled until the user scrolls to the bottom of the text.)
If you want to be even more thorough, you could prompt the user to accept the EULA the first TWO times the app is run, just to be safe.
Hope this helps!
Show it first time the app is shown, or if it isn't crucial, add a mention in the app description.