7
votes

I'm currently implementing In-App Purchases in my Swift app. The product is a non-consumable one which activates a kind of Premium version for the user. Usually, with non-consumable purchases, you have to put a "Restore Purchases" button in your app (mandatory). However, my problem with this is: The app, and therefore the purchase, is user-bound. So every user of the app has to register an account with us. As soon as an user purchases the IAP, the user account gets flagged as Premium internally on our server. Once he logs out and logs into another account for example, the purchase gets "deactivated" as during the login process the app gets info from the server whether the user is Premium or not.

So basically, if I'd put a "Restore Purchase" button in my app it would either be kind of useless as the purchase gets activated anyways as soon as the user logs in, or the button would make it possible for someone to purchase the Premium version once and then activate it on an unlimited number of other accounts, too, simply by logging into them and "restoring purchases".

So, question is: Is this button mandatory in my case? I've seen other apps, especially subscription-based ones do this, too.

1

1 Answers

1
votes

If you don't implement restore button for your in-app purchase implementation, Apple will reject your app.

Their idea is if any iTunes user has paid for some content, he should be able to access the content on any device. How you are using the receipt and allowing the user that's up to you.