RevenueCat ties the subscription status to an App User ID, not a device, which sounds like what you’re experiencing here. If you switched Apple accounts, but didn’t change the App User ID, the subscription status would not be cleared out.
You can use the .logOut()
method in the SDK to reset the App User ID, or if this is a test account you may want to delete the App User ID from the RevenueCat dashboard.
Thanks for the quick response!
If you switched Apple accounts, but didn’t change the App User ID, the subscription status would not be cleared out
Then that makes it more like an iOS SDK specific question (It worth noticing that my app is a macOS app that uses RevenueCat's iOS SDK). My app doesn’t have an app user id so I just rely on the anonymous one set automatically by the SDK.
Seems like RevenueCat's iOS SDK won't be able to get notified when a user logs into another Apple account on the same device because as far as I know, Apple doesn't refresh receipt when switching account.
That leaves a question that as a developer, how can we ensure that when a user signs in to a new Apple account on the same device, we can reset all pro features if the new Apple account hasn't bought the IAP.
Seems like RevenueCat's iOS SDK won't be able to get notified when a user logs into another Apple account
That is correct. The iOS SDK does not get any alerts of what the underlying Apple account is or if it’s been changed.
as far as I know, Apple doesn't refresh receipt when switching account.
Not sure about this one, Apple should be refreshing the receipt automatically if the phone account changes but maybe things are different between macOS and iOS here.
how can we ensure that when a user signs in to a new Apple account on the same device, we can reset all pro features if the new Apple account hasn't bought the IAP.
I don’t think there would be a full-proof way to detect this with the iOS SDK. The subscription status is tied to an app user ID, which enables cross-platform subscriptions (e.g. Android to iOS). So just because the device does not have a subscription in the receipt doesn’t mean the customer didn’t subscribe from elsewhere (web, Android, etc.).
If you have requirements for more control over subscription / account switching it may be worth exploring an authentication system and requiring customers to create an account in your app.