Solved

Can I ignore or delete a lifetime purchase made in the App Store sandbox?

  • 27 September 2021
  • 3 replies
  • 667 views

Badge +3

Hello! We’re about to release an app using RevenueCat (via the React Native SDK) on iOS. Our app has options for monthly and annual renewing subscriptions, plus a lifetime purchase option. The lifetime option is implemented as a non-consumable purchase in the App Store.

The issue we’re having is that once a user has purchased a lifetime subscription in the sandbox, there seems to be no way to ignore that purchase in the future without also ignoring other purchases with the same entitlement. I can manually grant an entitlement for a user, but when I call getPurchaserInfo() in my app, entitlements.active.xyz will contain the sandbox purchase, not the one I granted - the sandbox purchase seems to be taking priority. So either I have to treat sandbox lifetime purchases as valid, or add client code to ignore lifetime purchases made in the sandbox. But if I ignore sandbox purchases, this would seem to have the affect of also ignoring non-sandbox purchases for the same entitlement.

This is a concern for us because we’re currently running a public beta, and we don’t want our users’ accounts to end up in a weird state if they make test purchases. The subscription purchases are not a problem because these get automatically expired by Apple so they don’t stick around after testing is over.

Any advice is appreciated! Thanks!

icon

Best answer by ryan 28 September 2021, 18:23

View original

3 replies

Userlevel 5
Badge +9

The only way to delete the sandbox transactions would be to delete the entire customer from RevenueCat. 

If you need to remove all of these customers after testing and expiring the TestFlight build, you could create a Customer List of all the sandbox customers with a lifetime purchase and use the REST API or manually delete them from RevenueCat.

Badge +3

Thanks Ryan! That’s good to know. I think we will just have to disable the lifetime purchase option in our public beta build, that will be the safest option.

Userlevel 5
Badge +9

 

I think we will just have to disable the lifetime purchase option in our public beta build, that will be the safest option.

I agree! If you have that as an option, then you won’t need to worry about removing the lifetime access later. You can do your own internal QA that the lifetime purchase works as expected, then you’d at least only have a few internal test customers to delete.

Reply