This document contains a checklist of things to consider before launching your app to production.
|There are usage limits on the free Build plan. Hitting these limits may mean that purchases stop working. Consider upgrading to the Starter plan to remove these limits. 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||✅||❌|
|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.||✅||❌|
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.