How to tell if a player previously purchased my iOS app?


We are taking a previously paid app and making it free. However, we want to remove any ads for anyone who has spent money on our app.

I can’t figure out this case:

  1. V1.0 of app is purchased for $0.99
  2. User uninstalls app, thus losing any PlayerPrefs that might have been set.
  3. V1.1 of app is downloaded with a new price of FREE.
  4. How can I tell that this user already paid $0.99 for the app and should have no ads?

Is this possible? I appreciate the help!

As Ben said, make a v1.1 that pings your server and includes the deviceUniqueIdentifier so you know the user has played 1.1. (But, I think the way that every other app works is to have a free version, and a separate paid version.)

I guess, you can completely avoid having external server setup by having this “no_ads” in-app product as a non-consumable product. And this minor change, will allow you to restore old purchases even after reinstalling. Usually plugins do provide Restore API’s.

Try using Cross Platform Native Plugins. Very easy setup, lots of features, unified API’s and supports both iOS and Android platforms. Also needless to say, it supports restoring non-consumable products.