How does Sandbox testing work in subscription-based models?
Sandbox testing in subscription-based models is done to test suspicious programs that may contain viruses or other malware, without allowing the software to harm the host devices. The testing also helps third-party developers to validate their code before migrating it to the production environment.
To test in the developer sandbox, the app has to be built as a developer build in Xcode. For testing subscription models on iOS, sandbox testing requires creating Sandbox User if testing in Xcode build, while real Apple ID is required for testing on TestFlight builds. Although TestFlight uses the production sandbox environment, the build that is submitted to the TestFlight should be the same one that gets published to the App Store, and testing procedures in the TestFlight should be the same as in sandbox.
Creating a sandbox test user is required for making purchases in Xcode build. To test in-app purchases, go to App Store Connect, and open “Users and Access”, then “Sandbox Testers”. Sign in to sandbox. All events can be tested except REFUNDED events, which can be tested using Local StoreKit Testing. StoreKit APIs can be used to test the implementation of auto-renewable subscriptions in apps on all Apple platforms and in all App Store categories.
For prelaunch testing, submit a beta version of the app to App Review, generate promo code for the app, download the app from the App Store using the promo code, and subscribe. The promo code can be given to the testers to let them test the app for free.
Sandbox testing allows you to collaborate with team members to amend your revenue delivery setup over time, including testing for:
- Payment Logic
- Transaction Types
- Subscription Lifecycle, and
- Checkout Styling
Using a sandbox to test subscription-based models before they go live means there are fewer problems during and after testing as the testing environment is isolated from the production environment. The developer sandbox is the first line of defense. Make sure that you understand all the limitations of testing to save time when you move on to production testing.