CustomerInfo, grant entitlements, and appear as sandbox data in RevenueCat.
To test native Apple or Google purchase flows, see Native in-app purchases on private devices. Contact Autosana before preparing a build or configuring devices for this workflow.
RevenueCat
How it works
RevenueCat Test Store replaces the native store purchase sheet with a test modal. Autosana can select a successful, failed, or cancelled outcome and then verify how your app responds. Use this workflow to test:- Paywall navigation and product selection
- Successful purchases and entitlement unlocks
- Failed and cancelled purchases
- Entitlement state after the app is reopened
Configure RevenueCat Test Store
- Check that your RevenueCat SDK supports Test Store in the RevenueCat Test Store requirements.
- In RevenueCat, open Apps and providers and create or select a Test Store.
- In Product catalog, create the products used by your test paywall.
- Attach each product to a package in an offering. Make sure your app fetches that offering.
- Initialize the RevenueCat SDK with the Test Store API key. Test Store keys begin with
test_.
Build a standalone test app
Create a development or debug build that:- Uses the RevenueCat
test_key - Includes the app code and assets needed to run without a development server
- Does not depend on Metro, hot reload, or another process on your computer
Upload the build to Autosana
- Open Apps in Autosana.
- Create or select your iOS or Android app.
- Upload the standalone test artifact and make it the active build: a zipped
.appfor an iOS Simulator, or an.apkor.aabfor Android. - Run the purchase flows on a compatible virtual device.
Create purchase flows
Create separate flows for outcomes that need a clean starting state. Replace the bracketed text with the screens, plans, and premium state used by your app.- Successful purchase
- Failed purchase
- Cancelled purchase
- Entitlement persistence
Verify the result in RevenueCat
After a run, open the customer in RevenueCat and enable sandbox data. Confirm that:- The purchase is associated with the expected App User ID
- A successful purchase activated the expected entitlement
- A failed or cancelled purchase did not activate the entitlement
Troubleshooting
Before you ship
Replace thetest_ key with the correct platform-specific RevenueCat key before releasing the app. RevenueCat also recommends completing final purchase validation through Apple or Google platform sandboxes; follow RevenueCat’s sandbox testing guide for those steps.
Native in-app purchases on private devices
Native purchase testing exercises the Apple StoreKit or Google Play Billing purchase flow, including the store’s purchase UI and sandbox transactions. This also applies to apps that use RevenueCat with its Apple or Google store integration instead of Test Store.Native purchase testing on AWS Device Farm private devices requires an enterprise contract with Autosana and coordinated onboarding. Contact us first to confirm feasibility, device availability, commercial terms, and setup for your app. Selecting Real device in a standard run does not configure native purchase testing.
What to share with us
- Your target platform and app bundle ID or package name
- Whether you use StoreKit, Google Play Billing, or RevenueCat
- The scenarios you want to test, such as a first purchase, cancellation, restore, or subscription expiry
- Any required device models or OS versions
iOS build and sandbox setup
AWS Device Farm normally re-signs uploaded apps. Private devices allow us to preserve the app’s original signing using Skip app re-signing, which matters for native Apple capabilities. During onboarding:- We confirm the private devices and signing approach before you build. If the provisioning profile requires registered devices, we provide the private devices’ UDIDs for your Apple Developer account.
- You prepare the agreed device build. For Apple’s documented sandbox workflow, use a development-signed build. Register the supplied UDIDs where required, update the agreed provisioning profile, and export the signed
.ipa. A Simulator.appis not suitable for physical devices. - You configure Apple sandbox testing. Prepare your in-app purchase products and Sandbox Apple Accounts in App Store Connect.
- We configure and validate the private-device session. We coordinate Developer Mode and sandbox sign-in on the private device, preserve app signing, and validate a sandbox purchase before running your automated flows.
Android build and test-account setup
Contact us before preparing an Android build. During onboarding, we agree on the installation path, private-device configuration, and Google account used for purchases.Prepare Google Play and the test account
- Confirm the app and product catalog. Share the package name and the product IDs, subscription base plans, and offers your flows should exercise. Configure them in Play Console and confirm that they are available to the intended tester. If you use RevenueCat, connect the Google products to the appropriate offerings and entitlements, and use the Google store integration in this build instead of a
test_key. - Add the agreed Google account as a license tester. Follow Google’s license-testing setup. We coordinate sign-in on the private device with you.
- If distributing through Google Play, grant test-track access too. Publish the build to an internal or closed testing track, add the tester, and share the opt-in link with us. Track membership and license-testing status are separate settings. See Google’s testing-track setup.
Choose the build and installation path
We confirm which path fits your app before you upload anything:
Google allows license testers to sideload matching-package builds, including debug-signed builds, without uploading every new version to Play. A separate
.debug package name must correspond to its own configured Play app. See Google’s billing test guide.
For AWS private-device uploads, we coordinate Skip app re-signing to preserve your APK’s signature. Tell us if the app depends on Play Integrity or certificate-bound services so we can validate those requirements with the selected installation path. See AWS’s signing requirements.