About "Restore function"

  • 26 July 2021
  • 3 replies

Badge +2

I have done various tests and I would have to ask some questions:
1. Is it normal that after subscribing with a Device with an account, if I install the app on another Device that has the same account, I immediately enable the subscription without the need to restore? This way I never use restore.
I have not done anything in particular so I think the default value is set which is "Transfer purchases".
There is a way to better understand how it works and how you can set the various behaviors because from the doc I have not been able to understand this topic well.
In my app there are two simple subscriptions (monthly and yearly) and I have no special needs (there is no login or anything else in the app) so I opted to have RevenueCat create the user's ID automatically.
Thanks for your attention

3 replies

Userlevel 3
Badge +6

Without having a login or user authentication in your app, it’s not possible to immediately give access to your app only based on a subscription on a user’s other device. This is exactly what restoring purchases is for - so that the user can access their subscription across multiple devices without having a login for your app. For this to work, the user will have to meet the following requirements:

  1. The user will have to sign in with the same Apple/Google account on all of their devices. Meaning if they bought the subscription when they were signed in to the App Store on their iPhone with then they need to sign in to the App Store on their iPad with the same Apple ID to be able to restore their purchases. 
  2. Restoring purchases works on the platform they made the purchase on. For example, a user who purchases a subscription on iPhone can restore on iPad, but not on Android. Similarly, a user who purchases a subscription on an Android phone can restore on an Android tablet, but not iPad. To be able to restore purchases across platforms, you will need a user authentication system. More details in our guide on identifying users.

Transfer purchases is a different feature that tells RevenueCat what to do when a user tries to restore purchases that belong to another user. Transfer purchases means that if a RevenueCat app user ID is restoring purchases that already belong to another app user ID, RevenueCat will transfer the purchases to the new user to make sure that only one user has access to a subscription at any time. Take a look at this section in our guide on restoring purchases.

Badge +2

Thanks for the answer, but I would like to better present my case better to understand if what is happening to me is correct.
I have two iOS devices with the same account (in sandbox).
In them I installed my app from Flutter in release mode.
I opted for the ID automatically generated by RevenueCat because I have no user login.
In my plan there are only two subscriptions: monthly and yearly which allow you to access all the features of the app.
I proceed with the first Device to the subscription which takes place regularly.
When I go to open the app in the second Device I would expect not to be already in the Pro version but to have to restore (being another Device). Instead I am already in the Pro version by simply opening the app.
At this point I expect that even when a user changes phone, when he installs my app again, if he has an active subscription, he will immediately find himself Pro, without the need to restore.
Or if a user were to completely uninstall the app and then reinstall it, it would have the same result: it would immediately be Pro without the need to restore.
But then the restore when I use it?

Badge +2

As I wrote in the previous post I wanted to know if the described behavior is correct or did I do something wrong?