Hey @Martin B!
The importance of syncPurchases
here is to ensure RevenueCat has received the purchase, validated it with Apple / Google, and tracking it on our side. For instance, let’s say a customer is on a previous version of the app before the RevenueCat SDK was implemented and updated to a new version of the app with RevenueCat. Without syncPurchases
, the following would happen (like what you observed on iOS):
- Launch app with RevenueCat
- App would check for an active Entitlement to provide the lifetime lock
- Since the purchases aren’t synced with RevenueCat yet, Entitlement would be false and customer does not have access to their purchase
This isn’t a great customer experience here, which is why we recommend calling syncPurchases
upon the very first launch when customers update their app to using RevenueCat SDK for the first time.
The reason that not calling syncPurchases
on Android works in this case is due to a behavior of the Google Play Billing Library. On Android, our SDK will automatically sync purchases once the SDK is configured.