iOS: How Do IAP's Work? - ios

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

Related

How to change the button on the app store to say GET instead of the price? (Allow user to create account before IAP)

I just launched my first app on the IOS App Store:) I noticed that the newly released app page on the app store is requiring users to purchase the app before downloading it, how do I change the set up in app store connect to allow users to download the app before purchasing their subscription?
So right now the button where it supposed to say GET is just showing the price of the app and requiring users to purchase. Is it something i'm missing on the Pricing and Availability tab, maybe does it need to include a free option there? Any advice would be much appreciated as I can't seem to find any info on this.
Set the price to zero (i.e. move it to the free tier) on the Pricing and Availability tab in App Store Connect and the button will say "GET", so the users will be able to download the app for free.
This however will not automatically mean that your users will be able to make in-app purchases in your app, you have to configure IAP products separately (and submit them for review alongside an application build for the first time) and write code to handle the purchases as well as to provide a UI that enables that.

Mechanism of apple in-app Purchase need a restored button?

After reading Apple's terms with my average English I understand that all application who sell non-consumable item need to use the IAP and insert a "restored button" if not the application is rejected by apple.
My user need to be connected to an account to play in my game and the IAP is attached to his account. And the non-consumable item is a money that he can spend. So I can't add a "restore button"...
So my question is, compared to my project do I really have to install a restore button? And if yes, how?
Update
I found my answer :
Apple documentation
So I don't need a restored button because I've sell consumable item.
The simplest solution is to look, how other similar apps work.
Add a restore button somewhere in settings. User taps the restore button.
If user is logged in, then his balance is automatically restored from the account on your server and you just tell him, that his balance is restored.
If he is not logged in, you should tell him, that he should login to restore his balance and then show him a login view.
All this should be reproducable by AppStore's app tester.

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.

Can't create initial in-app purchase on iTunes Connect because list of product types is empty

This is my first time adding an in-app purchase into my brand new iOS app that has not been published yet. I'm trying (and failing) to add a new "product" (i.e. in-app purchase) into iTunes Connect. I've read every thread I can find on stack-overflow and used my favorite search engine quite extensively. Haven't found any posts that are similar.
Here's what I've tried:
Go into iTunes Connect and select the app I'm working on
Go to the "Features" tab on the top of the User interface
Select the "In-App Purchases" on the left side of the User interface
Click on the (+) button next to the text that says "In-App Purchases" in the content area of the page
Result: I get a nice popup that says "Select the In-App Purchase you want to create", with an empty list. Only the Cancel button is enabled because there is nothing in the list to select (see screenshot below). I expected to see a list of in-app purchase types like "subscription", "consumable", etc.
Other background that may or may not be relevant, but seems to come up a lot in the threads I have read:
My app has never been submitted, its status is "Prepare for Submission"
I do not have a wildcard in my appID
My AppID shows the In-App Purchase "Application Service" as Enabled for Development and Distribution
My user Role is Admin
Thanks for any help!
You need to go to 'Agreements, Tax and Banking' inside iTunes Connect and request and agree to the Paid Applications agreement. Then you should fill in the contact, bank and tax info.
Once this is done, the In-App Purchase types should be listed as they are supposed to.
Important requirement is an iTunes Connect user with an Admin or App Manager role, sign in to iTunes Connect to add in-app purchase. Once logged in and clicked in screen. You will get below screen. Does your ID has correct credentials?
Clear your browser cache ( try using different browser ). Logout/login again?

iOS App rejected due to wrong purchase type

I am stuck with one of the in-app purchase rejection issue in my app and need some help on this.
What this in-app for?
In our app we have options for user to become premium user. A user can become premium user to enjoy some benefits and it is tied to time. There are two in-app products which defines them
One month premium service.
One year premium service.
Since these are time based service, user expects these service should be made available for that user once he/she purchase the product for the specified time, from all his/her other devices. In order to track whether the user is premium service user or not, once the purchase is done, the app writes a entry in server about premium service. So when user uses other device and logs in, he/she can enjoy the premium service without any issues. For this reason I created the above mentioned products as "consumable", thinking that it is controlled by our server there will be no issues. But apple came back with rejection and asked me to change the products to "non-renewing subscription".
Here is what apple says about this
We found that the Purchasability Type for one or more of your In App Purchase products was inappropriately set, which is not in compliance with the App Store Review Guidelines.
"Premium account service for 1 month and 1 year" IAPs are set to Consumable.
However, based on product functionality, it would be more appropriate to use the Non-Renewable Subscription In App Purchase type because the service offered by your application requires the user to make an advance payment to access the content or receive the service.
The Purchasability type cannot be changed once an In App Purchase product has been created. Therefore, you will need to create a new In App Purchase product with the correct Purchasability Type. To create a new In App Purchase in iTunes Connect, go to Manage Your In App Purchases, select your app, and click "Create New". The current product will show in iTunes Connect as "Rejected".
Non-Renewable Subscription content must be made available to all iOS devices owned by a single user, as indicated in Guideline 11.6 of the App Store Review Guidelines:
11.6 Content subscriptions using IAP must last a minimum of 7 days and be available to the user from all of their iOS devices
If you choose to use user registration to meet this requirement, please keep in mind that it is not appropriate to require user registration. Such user registration must be made optional. It would be appropriate to make it clear to the user that only by registering will they be able to access the content from all of their iOS devices; and to provide them a way to register later, if they wish to access the content on their other iOS devices at a future time.
For more information about Purchasability Type, please to refer to the iTunes Connect Developer Guide.
Now I have created new in-app products which are non-renewing. But this works the same way as I mentioned earlier, i.e. the server keeps track of whether user is premium user or not, expiry date. When user goes to other device and does login, the app comes to know whether user is premium or not and based on that app works.
But I have couple of questions on this,
Should I need to provide the "Restore" button in the app? If so what is the purpose and how it works?
Since the user can access this service only after doing login to the app (it is different from app store account). Will these two logins make any issue?
Please share your valuable inputs.
It is highly unlikely that the user will end up in a situation where they won't be able to use your app unless they restore their purchases, however it is still possible. Imagine your server goes down for a day and during that day some user purchases a subscription, gets a new iPhone, installs your app on the new device and then wipes their old iPhone. I can think of a couple of other, equally unlikely, but still possible situations (Apple receipt validation server going down, etc) in which the purchase receipt will get lost in transit. It's best to provide the button, and if Apple thinks that you need it in your app, you will have a hard time convincing them otherwise.
If by "two logins" you mean user having to log in to your system and then log in to the App Store to purchase the subscription, that should not be a problem.
I recommend you make the changes Apple requested to the Purchasability Type and then re-submit. If you need to clarify a lack of a restore button put it in the notes for the reviewer

Resources