How to solve "Your app currently does not contain the "dismiss" button on your subscription page" - in-app-purchase

I have simple demo in app purchase demo published on playstore just to demostrate the implementation of in app purchase using Google play billing library, but i got an email that my subscription page violates the Subscriptions policy.
and the main message is Your app currently does not contain the "dismiss" button on your subscription page , i really don't know what they mean when my app appeares to be missing a dismiss button on the subscrtiption screen.
i tried asking the support team what the dismiss button must do or placed on the screen, they keep saying the same thing to go and read the subscription policy page, of which they are not saying anything about the dismiss button.
If anyone had solved this please help or guide me on what to do, i really wanna keep this app to play store for public testing and my audience to refer to it when they implement in app purchases.
I tried adding all the descriptive information about the subscriptions i offer in the app including the subscription period, charge and where to manage the subscritpion and contacted the google play review team to actually tell me what is needed but nothing helpful from their side.

Related

How is "restore purchase" actually implemented in most apps?

According to Apple doc, calling restoreCompletedTransactions() prompts user for App Store password:
Don't automatically restore purchases, especially when your app is launched. Restoring purchases prompts for the user’s App Store credentials, which interrupts the flow of your app.
I tried quite a few apps but never observed this behavior. One example is bear, a freemium note taking app. When I pressed its "restore purchase" button, it just went ahead to query and then showed an alert saying that there was no purchase information for me.
I wonder how is this implemented? I guess it stores users purchase information on its own server so it queries its own server, instead of App store. But the question is how it identifies me? (Note Bear app doesn't require user to create an account to use the app. I just downloaded the app and didn't do anything in it yet.). I know iOS has DeviceCheck API, but I think that only identifies a device, instead of an user, right?
Thanks for any help.
Note: Bear app's "restore purchase" button can be found by going to its side menu, pressing setting button at the bottom, pressing "get Pro!" button.
You need to be signed in with Apple ID in order to download apps and make purchases, that's how they match it.

change VPN configuration permission modal alert iOS

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.

Will the application review the auto renewable subscription?

I'm developing an application that looks like a dialogue with another person. Some dialog branches are paid and are available only when the subscription is activated. When user click on this thread, we ask that him purchase it. When a person activates a subscription, he also has access to some paid video, audio, and a restriction on viewing the news section. We would like to use the Autorenewable subscription with a plan for a month. But will our application go through the review? maybe there are still some approaches to enable the user to activate auto-subscriptions to our application.
Thank you in advance for your cooperation
Yes, this should be an ok use of IAP, however reviewers can act randomly so you may get a different result.
I would make sure that when a user encounters a path that is premium, you don't just initiate an in-app-purchase but you present the user with a "paywall", a screen that says the content is for purchase and show them the price and allow them to purchase. If you are too aggressive, Apple may reject your application.

iOS app for a Cloud Storage Service rejected (for not providing In App Purchase for subscription)

We are a startup that provides cloud storage (www.zapdrive.com). Our iOS app was rejected, and the reason given was the clauses 11.12 of the App Store Review Guidelines, which specifically says:
"Apps offering subscriptions must do so using IAP, Apple will share the
same 70/30 revenue split with developers for these purchases, as set
forth in the Developer Program License Agreement."
Please note that we are not offering any subscription from within the App. We do not have any links or buttons in the App that take the user to any external website, whatsoever. It is a very basic app, that lets the users view their files stored in "ZapDrive". To see what the app looks like, you can see it in the Google Play Store
One thing that we see could be close to a violation of the above rule is, on the first page of the App (which is the login screen), we have a text that says:
"Don't have a ZapDrive Account? Go to www.zapdrive.com to sign up for a FREE account"
However, the above-mentioned line is just plain text, and does not "link" to the actuak website.
Also, the rejection notice says:
While your app maybe be intended to enhance the experience of your
existing subscribers, with the exception of the content specified in
Guideline 11.14, if the subscribed product is used within the app, the
subscription must be offered in the app using IAP.
Please not that we are not selling any content, or offering a subscription to any content. The users already own the content, and they copy it into their "ZapDrive". The app lets them view/stream the said content.
Although, Apple says that just because other apps are doing this, doesn't mean you can do it too. Still, a lot of other apps (DropBox, Google Drive, Box etc) offer subscriptions, but do not offer IAP.
Can someone please tell us, how are we violating the App Store Guidelines? And what can we do to make it compatible? Is it the text on the login screen that's causing this violation?
My guess is the link. Does the kindle app have a link in their app? Does Dropbox? I don't think so... Take out the link and resubmit and see what happens. Or you can ask apple for more details.
Your question is not a programming one; there's no better place to ask this than Apple themselves. All iTunesConnect rejections have a corresponding textbox you can communicate with them specifically about that rejection ticket.

iOS: How Do IAP's Work?

I was wondering how I give the user the new add-ons after they purchase them. Lets say that one of my IAP's is a new tab in a tab-based application. I'm under the impression that the process is something like this:
Submit an update to my app, adding in the IAP support.
Submit my app to iTunes Connect's "Manage IAP's", with the new tab implemented in the program.
When the user clicks "Buy Now" in the IAP screen, the app will grab the version of itself with that feature implemented off of iTunes Connect.
Sorry if this is confusing, I'm having a hard time wording what I'm trying to say. Any help would be great, thanks!
Number 3 is wrong. The user will download the version of your application that supports both IAP and the new tab feature. Your app itself will have to determine whether to show the tab or not.
That is, when the user makes the purchase, you show the tab. There won't be two separate versions of your application on iTunes.
Depending on the purchase type, you can store a local flag or receipt on the device indicating that the user has purchased something. The next time your app runs, you check the flag or receipt and then show the tab only if the user had purchased the feature.
See: In-App Purchase Programming Guide

Resources