Skip to main content

I'm currently evaluating whether adding a lifetime (non-consumable) in-app purchase is as simple as adding a new non-consumable one-time purchase to my paywall, or if it's more complicated.

Here is the current technical situation of the app

  • App already uses RevenueCat + RC paywalls.
  • The app currently has no login functionality, so each installation is an anonymous account.

My requirements for adding a lifetime option

  • I want users to be able to use their lifetime purchase across all of their devices.
  • I will be adding an account system in the future and want to make sure that the in-app purchase can only be used for one account.

A few years ago I implemented a one-time purchase in an iOS app (without RC though) and I remember it was quite a struggle because people couldn't restore non-consumable items across their devices.

So my first question is:

Is it possible for users (on both iOS and Android) to restore non-consumable purchases across devices? I couldn't find any information on this.

If so, my second question would be:

I will be adding an account system at some point. Is there an easy way to associate a product with an account (e.g. after linking the account system user ID with the anonymous RC account) and revoke access to the lifetime purchase for all other accounts?

I'd really appreciate an answer, especially regarding my first question.

Thank you very much!

Hi ​@weareyoung,

You can absolutely use lifetime products with RevenueCat and our paywalls. Simply create a product, choose the “lifetime” type, and attach it to an entitlement so the system understands how to treat the non-consumable purchase.

To allow access on multiple devices, you must have a way of identifying your users. Once the SDK detects the same user ID, it grants the entitlement they purchased on another device. However, if you rely only on anonymous IDs, the subscription can’t be shared across devices at the same time. If a user calls restorePurchases, you can configure how to handle the active entitlement. Check all the possible restore behaviors here and this docs for more info about user identity.
Best,


Reply