Optimized Method to Track Paid Users paid access in iOS App WITHOUT Login Credentials

Currently building a freemium iOS app without any login features. In order to track the paid features (i.e. unlimited token usage) I am using device ID in the database (using Google Firebase).

Problem is I see new device IDs pop up in the database for the same user using the same device. This breaks the paid feature and removes their access to unlimited tokens when this new device ID activates.

Other then creating a formal login system (e.g. username and password) what is the best way to log a user's device info so that the app user can keep their paid features?

Thanks for the help!

Check the App Receipt, or use the equivalent StoreKit 2 features, to see what in-app purchases they have made.

Do you need to do this check on the device or on your server (or both)?

In order to track the paid features (i.e. unlimited token usage) I am using device ID in the database

That was never a good idea. What "device ID" specifically are you trying to use?

So one problem with simply using app receipts is we have a share feature we use to also track token usage. So share the app with a friend, friend downloads app, receive 100 free tokens. There is no app store purchase in this transaction.

To my understanding I thought there was only one device ID. But are there multiple? Like would it be UDID vs IMEI?

Optimized Method to Track Paid Users paid access in iOS App WITHOUT Login Credentials
 
 
Q