I've found this post from Revenue Cat to be a gold mine for tips on testing subscriptions.
https://www.revenuecat.com/blog/the-ultimate-guide-to-subscription-testing-on-ios
A couple caveats:
- I haven't had a chance yet to try the techniques that they mention.
- It's true that Revenue Cat sells an iOS subscription management service. To be clear, I'm not affiliated with them. The post itself is technical advice that fills in a lot of missing pieces about how sandboxing, TestFlight, and production interact with subscriptions. (They refer to their own sevice in the very last paragraph.)
They suggest using a promo code as a way to download and test an approved production version of an app against subscriptions before that production app is manually released to customers on the App Store.
Quote:
- Submit a beta version of the app to App Review. Make sure to set “Version Release” to “Manually release this version” so that the app is not released on the App Store.
- Generate promo codes for the app. This can be done for free apps that are approved but not yet live on the App Store.
- Download the app from the App Store using a promo code.
- Subscribe.
"Since this app has gone through approval, subscriptions will perform exactly as they will when the app is live on the App Store—including charging testers who subscribe and allowing testers to manage their subscription on the App Store app. You can give testers promo codes to let them test the app for free. Subscriptions paid for via promo code work exactly like paid subscriptions except that they don’t auto-renew.
One other thing to note here is that apps downloaded via promo codes before the app is live on the App Store don’t seem to have a proper receipt file in the download bundle. The receipt should be refreshed with a purchase, but this issue could be used to test the rare scenario where real users of the app somehow end up in a state where an accurate receipt is not contained in the app bundle."