Skip to main content

Create the products of your plans in App Store Connect and Google Play Console

For revenuecat

The plans of the app are products in the stores. Every plan gives the same premium access, so create one product for each plan that you sell, in both stores, such as:

PlanApp StoreGoogle PlayProduct ID
Monthly, with a free weekAn auto-renewable subscription of 1 month, with an introductory offerA subscription with a monthly base plan and a free trial offerpremium_monthly
YearlyAn auto-renewable subscription of 1 yearA subscription with a yearly base planpremium_yearly
LifetimeA non-consumable in-app purchaseA one-time productpremium_lifetime

The same Product ID in both stores keeps the next steps simple. A Product ID can never be used again, in either store, even after you delete its product. On Google Play it starts with a lowercase letter or a digit, has at most 40 characters, and may have underscores and periods.

The paywall names these periods: every week, every 1, 2, 3 or 6 months, and every year. It names a free trial or a lower price at first of 3 days, 1 or 2 weeks, 1, 2, 3 or 6 months, or 1 year. These are the periods and trials of the App Store. Google Play offers more, such as every 4 weeks, and the paywall shows the title of such a product instead of the name of its period.

Do the step about payments first: App Store Connect lets you create no in-app purchase until the Paid Apps Agreement is signed.

tip

The screenshots use the app My App. The orange frames mark what to click, in the order of their numbers.

App Store Connect​

1. Create a subscription group. In App Store Connect, open Apps and your app. In the sidebar, under Monetization, click Subscriptions (1). In Subscription Groups, click Create (2), or + next to the heading once the app has a group.

The page Subscriptions of an app in App Store Connect, with Subscriptions in the sidebar marked 1 and Create under Subscription Groups marked 2

Enter a reference name (1), such as Premium, and click Create (2).

The dialog Create Subscription Group, with the reference name Premium marked 1 and Create marked 2

A user can take one introductory offer in a group, and moves between the plans of a group rather than having two at once, so put the subscriptions of the premium access into this one group. Under Display Name and Description of the group, click Add and enter the name that the App Store shows for it.

2. Create a subscription. On the page of the group, click Create (1), or + next to Subscriptions once the group has one.

The page of the subscription group Premium in App Store Connect, with Create under Subscriptions marked 1

Enter a Reference Name (1), such as Premium Monthly, the Product ID (2), such as premium_monthly, and the Subscription Duration (3), such as 1 month, and click Create (4). Apple offers 1 week, 1, 2, 3 and 6 months, and 1 year. You cannot change the duration once the subscription is submitted.

The dialog Create Subscription, with the reference name Premium Monthly marked 1, the Product ID premium_monthly marked 2, the duration 1 month marked 3 and Create marked 4

On the page of the subscription, under Availability, click Set Up Availability (1) and choose the countries or regions where you sell. Under Subscription Prices, click Add Subscription Price (2).

The sections Availability and Subscription Prices of a subscription, with Set Up Availability marked 1 and Add Subscription Price marked 2

Choose a country or region and its price (1), such as United States and $4.99, and click Next (2). App Store Connect computes the prices of the other countries and regions from it. Change any of them on the next page, click Next, then Confirm.

The dialog Subscription Pricing, with the country United States and the price $4.99 marked 1 and Next marked 2

Then fill in:

  • Display Name and Description: click Add and enter what the App Store shows.
  • Review Information: a screenshot of the paywall and notes for App Review.

Click Save. Repeat for the yearly plan.

3. Add a free trial. On the page of the monthly subscription, click + next to Subscription Prices (1), then Create Introductory Offer (2). App Store Connect shows the + once the subscription has a price.

The section Subscription Prices of a subscription, with + next to the heading marked 1 and Create Introductory Offer in its menu marked 2

Choose the countries or regions and click Next. Choose the start date, choose No End Date under End Date, and click Next. Choose the type Free (1) and its duration under Free for (2), such as 1 week. Click Next, then Confirm. Pay as you go and Pay up front give a lower price at first instead. An introductory offer cannot be edited later, only deleted and created again.

The step Type of Introductory Offer, with the types Pay as you go, Pay up front and Free marked 1, where Free is chosen, and the duration Free for 1 week marked 2

4. Create the lifetime purchase. In the sidebar, under Monetization, click In-App Purchases, then + next to the heading. Choose the type Non-Consumable (1), enter a reference name (2) and the Product ID (3), such as premium_lifetime, and click Create (4).

The dialog Create an In-App Purchase, with the type Non-Consumable marked 1, the reference name Premium Lifetime marked 2, the Product ID premium_lifetime marked 3 and Create marked 4

On the page of the purchase, set a price in the section Price Schedule. In the section Display Name and Description, add a display name and a description. Add a screenshot under Review Information, and click Save.

5. Send them with the app. The first subscription and the first in-app purchase of an app go to App Review with a new version of the app. On the page of each product, click Add for Review, and submit them with the version.

Google Play Console​

6. Upload a build. Play Console lets you create products only once a version of the app with the Google Play Billing Library is on a track. The app has the library through RevenueCat, and the library declares the permission com.android.vending.BILLING itself, so the manifest needs no change. Build an app bundle, signed with your upload key, since Google Play takes no bundle that is signed with the debug key; see Sign the app in the documentation of Flutter:

flutter build appbundle --dart-define-from-file=.env

In Google Play Console, open the app, then Test and release > Testing > Internal testing. Click Create new release (1) and upload build/app/outputs/bundle/release/app-release.aab to it.

The page Internal testing of an app in Play Console, with Create new release marked 1

7. Create a subscription. Open Monetize with Play > Products > Subscriptions and click Create subscription (1).

The page Subscriptions of an app in Play Console, with Create subscription marked 1

Enter the Product ID (1), such as premium_monthly, and a Name (2), and click Create (3).

The dialog Create subscription, with the Product ID premium_monthly marked 1, the name Premium Monthly marked 2 and Create marked 3

On the page of the subscription, under Base plans and offers, click Add base plan. Enter a Base plan ID (1), such as monthly, with lowercase letters, digits and hyphens. Choose the type Auto-renewing (2) and the Billing period (3), such as Monthly.

The page Add base plan in Play Console, with the base plan ID monthly marked 1, the type Auto-renewing marked 2 and the billing period Monthly marked 3

Under Price and availability, click Set prices, check the countries and regions where you sell (the box in the header of the table checks all of them), and click Set price. Enter the price and its currency, such as 4.99 USD, and click Update. Click Save, then Activate.

Repeat for the yearly plan: a subscription premium_yearly with a base plan yearly whose billing period is Yearly.

8. Add a free trial. In the monthly subscription, under Base plans and offers, click Add offer, choose the base plan and click Add offer. Enter an Offer ID, such as free-week, and under Eligibility criteria choose New customer acquisition. Under Phases, click Add phase, choose the type Free trial and its duration (1), such as 1 week, and click Apply. Click Save, then Activate.

The dialog Add phase of an offer in Play Console, with the type Free trial and the duration 1 week marked 1

9. Create the lifetime product. Open Monetize with Play > Products > One-time products and click Create one-time product. On Product details, enter the Product ID (1), such as premium_lifetime, a Name and a Description, and click Next.

The first page of Create one-time product, Product details, with the Product ID premium_lifetime marked 1

On Availability and pricing, add a purchase option with an ID and the purchase type Buy, set its prices, and click Activate. A one-time product that is bought once and kept for good is a non-consumable, and the step in RevenueCat marks it so.

Check. App Store Connect lists the subscriptions in their group and the non-consumable purchase, each with a price. Play Console lists the subscriptions with active base plans, the offer of the free week, and the one-time product as active.

To buy them on a device before a release, add testers: in App Store Connect under Users and Access > Sandbox, and in Play Console under Manage account > Play apps settings > License testing.

The page Manage account of Play Console, with Manage account in the bar on the left marked 1 and License testing under Play apps settings marked 2

A license tester installs the app from the internal testing track and pays with a test card. In a debug build, leave REVENUECAT_TEST_KEY empty, so that the app sells through the store rather than the Test Store of RevenueCat.