If you're still testing in sandbox, it's most likely a configuration issue that's preventing the products from being retrieved from Apple/Google. Your product identifiers are set in RevenueCat, but the actual products that your users purchase can only be retrieved directly from Apple/Google. Because this communication happens between your app and the stores, RevenueCat doesn't have any visibility into the API requests, however there are some common requirements to go through.
- The product identifier set in RevenueCat matches exactly with the store
- You're testing on a physical device and not a simulator
- The bundle ID in Xcode [iOS] or package name [Android] match what's in App Store Connect or Google Play
- Products are in the in the 'Ready To Submit' state [iOS]
- You've signed your 'Paid Applications Agreement' [iOS]
- If you're trying to fetch products from the App Store, ensure you're not using a StoreKit Configuration file [iOS]
- Your app is published on a closed track and you've added a tester [Android]
If you have both development and production environments for your app, be sure to double check you are using the correct bundle IDs [iOS] or package names [Android].
If your app is live and everything was working during testing, you should check that:
- All products are in the 'Approved' state in App Store Connect [iOS]
- Products have been approved for 24hrs+. Due to store propagation time, it can take 24hrs+ for new products to become available after being approved - this is the same for new apps and adding new products to existing apps.
Changing the reference name in App Store Connect can also cause products to not fetch on iOS. Create a new product with a different identifier, fill out any missing metadata, and attempt to fetch products again.
If your products fetch fine in Sandbox and Testflight, but App Store Review is unable to fetch products, ensure that you are submitting your in-app purchases with your app for review. More details in our App Store rejections documentation.
The App Review environment is notoriously flaky and can cause issues when the reviewer tests in-app purchases. Submitting a video to Apple of the in-app purchase flow working in Testflight could help with App Review.
For more information on rejections, view our post on App Rejections: