I'm working on an app that requires a subscription. Subscription times are drastically shortened in the sandbox, including during TestFlight. This is fine for internal testing, and perhaps during initial TestFlight testing, but for the most part I want my users to be testing the app, not the subscription process. As it is, even a yearly subscription only lasts an hour, and will only auto-renew six times. It's absurd to expect my testers to renew their subscription every day, let alone multiple times a day.
Is there a recommended way to deal with this? It seems like a major oversight. The only good solutions I can think of are:
- Offer a one-time purchase to unlock the app for life. I don’t want to make this available on the App Store, but I guess I could create it and just never publish it…? Would that work?
- Add a completely custom way to handle this. For example, if the app has an account system users can log into, then accounts could be flagged a being beta testers, and that info could be communicated back to the app. This is a possibility for this app, but I’d like people to be able to test the app without signing in if they prefer. If I require my testers to all use the app in some specific way, it's not going to get tested very well.
- Check the receipt URL to determine whether the app is using the sandbox. This seems the most prone to failure since it is not documented and could change. (It also seems the least secure, for example if someone wanted to crack the app on a jailbroken device.)
Another big downside is that either my beta testers spend far too much time testing my subscription code, or they have some way to fully unlock the app and at that point they never test my subscription code at all. Both of these are awful.
Does anyone have a recommendation?