When does Restore button need to appear?

I have an app with an auto-renewing in-app purchase (subscription). We know that if the user subscribes and then deletes the app while the subscription is still valid, when they user tries to subscribe again, the app will say, already subscribed. So our proposed solution is to display the restore button in the case where the User is subscribed but the app was deleted. Then while the subscription is active we don't show either button, neither subscribe nor restore.


I think it is not user friendly to always show restore, even if the user has never subscribed. So what is the best practice here?

From the docs:

https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/Restoring.html


Restoring Purchased Products

Users restore transactions to maintain access to content they’ve already purchased. For example, when they upgrade to a new phone, they don’t lose all of the items they purchased on the old phone. Include some mechanism in your app to let the user restore their purchases, such as a Restore Purchases button. Restoring purchases prompts for the user’s App Store credentials, which interrupts the flow of your app: because of this, don’t automatically restore purchases, especially not every time your app is launched.

In most cases, all your app needs to do is refresh its receipt and deliver the products in its receipt.

Restoring Completed Transactions

Your app starts the process by calling the

restoreCompletedTransactions
method of
SKPaymentQueue
.


...use the link for further info.


See this SO thread for discussion:

https://stackoverflow.com/questions/11021932/in-app-purchases-restore-button


Also, don't confuse 'mechanism' with just a button.


Remember too, consumables don't typically require a restore button.

The issue is that you have no way of knowing if a user has already subscribed when that user a) gets a new device and downloads the app to that new device or b) deletes the app and reinstalls it. That user does not want to tap a "purchase" button and only then receive a "you already purchased the subscription, it will be downloaded for free" response. They are afraid that if they tap the "purchase" button they will be told "thanks for the $4.99 purchase" not "you already....". They want to see a "restore" button next to that "purchase" button.


And yes....."while the subscription is active we don't show either button, neither subscribe nor restore."

OK thanks. We'll try to go with the two step version

1) Something Like Subscribe

2) two buttons: Subscribe, Restore

In the case of a login screen, the user must log in with their Apple credentials, and our app already knows they are subscribed and automatically gives them access to all their purchased subscription material. Therefore, why do we even need a restore purchases option?

When does Restore button need to appear?
 
 
Q