My Kotlin Multiplatform app (iOS and Android) does not use any form of user authentication or account system, it relies entirely on Google Play Billing and App Store for entitlements. After integrating RevenueCat, I’m using the default anonymous user IDs that are automatically generated on each device install.
My concern is whether this setup introduces a risk of users losing access to their entitlements under any of the following scenarios:
-
The app is uninstalled and reinstalled.
-
The user switches devices (but uses the same Google Play/Apple ID).
-
The app data is cleared or restored via backup.
-
The anonymous ID changes for any reason.
Since RevenueCat identifies users by this anonymous ID, and my app has no backend or custom user IDs, it seems that if a user’s anonymous ID changes, they could lose their entitlement records unless RevenueCat re-syncs their purchases from Google Play.
Questions:
-
Is it safe to rely solely on anonymous IDs when my app depends on RevenueCat for entitlement restoration?
-
If an anonymous ID changes, will
restorePurchases()orsyncPurchases()automatically re-link the user’s Google Play/Apple purchases to the new anonymous ID? -
Are there recommended best practices for apps that have no login system but want to preserve RevenueCat entitlements reliably across reinstalls or new devices?
Looking for guidance on whether I should be implementing any additional safeguards or user flow changes to prevent entitlement loss in this kind of setup.
