RevenueCat

RevenueCat makes implementing in-app purchases and subscriptions easy by handling all purchase validation operations. With RevenueCat, you can allow users to purchase subscriptions, make certain features paid, and more.

Prerequisites

If you are new to RevenueCat, it's recommended you read this first: What is RevenueCat?

RevenueCat Integration

Integrating the RevenueCat in your app comprises the following steps:

1. Publishing the app

If you want to set up purchases on Google Play Store and Apple App Store, make sure you have created and published the app on PlayStore and App Store.

1.1 Publish App to Apple App Store

If you haven't published the app yet, please check out the App Store Deployment guide.

1.2 Publish App to Google Play Store

To publish your app to Play Store:

  1. Create an app on Google Play Console.

  2. Create a Closed testing track. You can find more info on creating the test track here.

2. Creating Subscriptions

Before incorporating subscriptions into your app, you will first need to create the subscription products in the Google Play Store and App Stores.

2.1 Google Play Store

To create a subscription product in the Google Play Store:

  1. Open your app on the Google Play Console.

  2. Open the Subscriptions tab (from the left side menu). Check if you see Create subscription button. If you do, you can skip this step.

  3. If you see a message saying 'Your app doesn't have any in-app products yet' like in this picture:

You will need to complete the following steps:

  1. Go to FlutterFlow Dashboard and open your project.

  2. Navigate to Settings & Integrations > Integrations > RevenueCat page.

  3. Check Enable RevenueCat. Enter any string as your API Key (eg. testkey). You will update this later.

  4. Click Download APK in the navigation bar and wait until your project is built.

  5. Go back to the Play Store. Open your Closed testing track and create a new release.

  6. Upload your App Bundle or APK, enter the Release name and create the release.

  7. Go back to Google Play Console and open the Subscriptions tab again. It should let you manage subscriptions now.

  8. Now, follow this guide by RevenueCat to configure your products or subscriptions on Google Play.

2.2 App Store

To create a subscription product in App Store:

  1. Open App Store Connect Portal and navigate to your app.

  2. Follow this guide by RevenueCat to configure your products or subscriptions for App Store

  3. Make sure that the state of your purchases is Ready to Submit.

  4. Navigate to the Agreements page and sign the Paid Apps agreement. The state must be Active before you can make purchases even in the sandbox mode.

  5. Navigate the Testers page and add sandbox testers. Make sure to confirm the emails of all sandbox testers.

3. Setup RevenueCat

Setting up RevenueCat comprises the following steps:

3.1 Create and register your app with RevenueCat

Follow the first 3 steps of the following guide by RevenueCat to create and configure your RevenueCat app (stop before "Store Setup") using this Quickstart Guide from RevenueCat.

3.2 Create Products, Entitlements, and Offers

RevenueCat uses an Entitlements system to control access to premium features, and Offerings to manage the set of products you offer to customers.

Learn more about configuring products in RevenueCat with this how to guide.

You must create at least one entitlement and at least one offering for using RevenueCat with FlutterFlow.

After the creation, the Products, Entitlements, and Offers will look like this:

3.3 Connect to Google Play Store

To allow RevenueCat servers to communicate with Google on your behalf, please follow these instructions on how to configure play store credentials.

NOTE: It can take several hours for these credentials to propagate. Until then your purchases can fail with "There was a credentials issue. Check the underlying error for more details".

3.4 Connect to Apple App Store

To connect the RevenueCat servers to App Store, follow the instructions present on these instructions on generating app specific shared secret.

4. Enable RevenueCat in FlutterFlow

To enable RevenueCat in FlutterFlow:

  1. Go to FlutterFlow Dashboard and open your project.

  2. Navigate to Settings and Integrations > In App Purchases & Subscriptions > RevenueCat.

  3. Enable RevenueCat integration.

  4. Get the Play Store and App Store keys by visiting RevenueCat app -> API Keys -> Public app-specific API keys, and copy the key.

  5. Paste the key inside the Play Store Key and App Store Key input box.

Enabling debug logging (recommended) will greatly help with troubleshooting any integration issues. Don't forget to disable this logging when you are ready to deploy your app to production.

5. Trigger RevenueCat action

To manage in-app purchases and subscriptions inside your FlutterFlow app, you have to use the RevenueCat Action. Know how to define the action by going to the following page:

pageRevenueCat

6. Testing

RevenueCat Play Store purchases work on real Android devices or in emulators, and App Store purchases only work on real iOS devices. This document has instructions on how to run your app on an Android or iOS device.

NOTE: RevenueCat data cannot be loaded in Preview Mode, Test Mode, or Run Mode.

Creating Test Users

Test on Android: To create test users to try Play Store purchases in the sandbox mode, follow this guide by RevenueCat. You need to create a test user, configure licensing testing, create a closed track, and add a tester to it.

Test on iOS: To create test users to try App Store purchases in the sandbox mode, follow this guide by RevenueCat.

Here's how it works after you complete all the steps:

7. Launch

Before launching your app to production make sure you go through the Launch Checklist of RevenueCat:

FAQs

I don't see offerings or products

If you're testing in the sandbox and the products are not retrieved from Apple/Google, it's likely a configuration issue. To resolve this, ensure the following:

  1. The product identifier set in RevenueCat matches exactly with the store.

  2. You're testing on a physical device and not a simulator.

  3. The bundle ID in Xcode [iOS] or package name [Google] matches what's in App Store Connect or Google Play Developer console.

For iOS only, ensure that products are in the 'Ready To Submit' or 'Approved' state, you've signed your 'Paid Applications Agreement', and you're not using a StoreKit Configuration file.

For Google only, ensure that the subscription product is in the Active state, your app is published on a closed track, and you've added a tester.

See more details here.

Last updated