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
Best answer by sharifView original
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:
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.
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?
As I wrote in the previous post I wanted to know if the described behavior is correct or did I do something wrong?
Sorry for the delay here! Didn’t notice the follow ups. In those situations you described where the user changes phones and installs the app again, it’s not expected that the user immediately have access to their subscription. The user should restore purchases or log in to your app to regain access to their existing subscription. If you’d like, you can restore purchases when the user first launches the app by calling
syncPurchases. Make sure not to restore purchases on every app launch as this can slow down your app - instead, just call
syncPurchasesthe first time the user launches the app after installing the app.
Now that I've published the app in the Store, I've seen that the behavior is as it should be. You can see that with purchases made with sandbox it behaved differently. So everything is ok.
Maybe it's good to tell the users that from SandBox to the real Store there is this change.