This document contains a checklist of things to consider before launching subscriptions in your app to production.
|There are usage limits on the free Build plan. When you hit the $10,000 MTR limit, we'll ask you to switch to a paid Starter or Pro plan. Consider upgrading beforehand and benefit from the Starter and Pro features from day 1. See the pricing page for more details.||✅||✅|
|Verify App User IDs are set properly||iOS||Android|
|If you're setting your own user identifiers, make sure they are all being set as expected and you've followed our tips - double check for hardcoded strings!||✅||✅|
|Verify all users are tracked in customer view||iOS||Android|
|Verify all the users that purchased are tracked in the activity view. If you expect to see a specific App User Id that purchased, but it's missing, something could be wrong.||✅||✅|
|No unexpected aliases on user||iOS||Android|
|For each user, check that there are no unexpected aliases on their customer page. See our guide for more information on how aliases are created.||✅||✅|
|All products are available||iOS||Android|
|Verify that all of your products are being fetched correctly by RevenueCat.|
If any product is unavailable, there may be a configuration issue.
|Test purchases unlock content||iOS||Android|
|Make a purchase, the transaction should succeed and unlock "pro" content. It should appear right away in the transactions table and in the customer view for that user. (Note: Sandbox subscriptions will auto-renew at an accelerated rate.)||✅||✅|
|Subscriptions status is up-to-date||iOS||Android|
|Return to the app while a test subscription is still active. You should still be able to access "pro" content.|
Wait for the subscription to expire then return to the app, your "pro" access should be revoked.
|Uninstall and re-install the app. If you're setting your own App User Id, any active subscriptions should be automatically restored when you log-in.|
If you're using RevenueCat generated App User IDs on iOS, you won't be able to restore purchases after an uninstall in sandbox until you make another purchase.
|No webhook failures||iOS||Android|
|If you have a webhook configured, ensure that you don't have any errors and are handling all event types properly.||✅||✅|
|Integrations delivered to correct user||iOS||Android|
|If you have any integrations configured, ensure that you're receiving test events attached to the expected user||✅||✅|
|As of December 8, 2020, Apple requires thorough App Privacy disclosures for third-parties, including RevenueCat.|
By April 2022, Google requires a Data Safety disclosure for all apps on the platform.
|Choose a staged release option so you can monitor, and halt, a rollout on a fraction of users if there's any problems.||✅||✅|
|Choose to manually release app||iOS||Android|
|On iOS, if your app contains new products, choose to manually release the version and wait ~24 hours after your app is "Cleared for Sale" to release publicly.|
This is because it sometimes takes new products ~24 hours to propagate throughout the App Store.
|If you're using an attribution integration, ensure your app complies with IDFA usage guidelines by disclosing the use of IDFA.||✅||❌|
First release on App Store?
If the app has never been released on the App Store, it must be released before in-app purchases will work in production (even if you download with a code).
We recommend releasing and waiting up to 24 hours to ensure purchases work before starting marketing/release campaigns.
RevenueCat detects when you launch based on the purchases we receive, so there's nothing you need to do in RevenueCat when you're ready to ship.