Our review
Step-by-step guide to set up an iOS or Android app in RevenueCat, including creating the app, configuring store credentials, and obtaining the API key.
Strengths
- Automates app creation in RevenueCat
- Guides through App Store Connect and Google Play Console configurations
- Provides ready-to-use code snippets for SDK integration
Limitations
- Requires user access to Apple or Google developer consoles
- Cannot set up developer accounts themselves
- Needs accurate bundle ID or package name from the user
When initially setting up a mobile app with RevenueCat for in-app purchase and subscription management.
For modifying an existing RevenueCat app or managing already configured products.
Security analysis
SafeThe skill only guides through RevenueCat app setup using MCP tools, with no destructive, exfiltrating, or obfuscated actions. It provides legitimate SDK integration code and store configuration steps.
No concerns found
Examples
/rc:create-app ios com.awesomeapp.fitness "Fitness Tracker"/rc:create-app android com.example.myappname: create-app description: Step-by-step guide for setting up an iOS or Android app in RevenueCat. Use when configuring a new app with RevenueCat.
RevenueCat App Setup
Step-by-step guide for setting up an iOS or Android app in RevenueCat.
Description
Walks you through the complete app setup process including:
- Creating the app in RevenueCat
- Configuring store credentials (App Store Connect or Google Play Console)
- Setting up products
- Getting your API key
Usage
/rc:create-app <platform> [app_identifier] [project_name]
Arguments:
platform(required): Eitheriosorandroidapp_identifier(optional): Bundle ID (iOS) or package name (Android)project_name(optional): Name of the project to create the app in. If not provided, the user will be prompted to select a project.
Available as $ARGUMENTS.
Instructions
When the user invokes this skill, guide them through app setup:
-
Parse Arguments (from $ARGUMENTS)
- Extract
platform(required) - must beiosorandroid - Extract
app_identifier(optional) - bundle ID or package name - Extract
project_name(optional) - Arguments can be in any order, but platform keywords (
ios,android) are detected first - Project name matching is case-insensitive and supports partial matches
- If platform is not provided, ask the user to specify it
- Extract
-
Get Projects
- Call
mcp_RC_get_projectto retrieve all accessible projects - If
project_nameis specified in arguments, filter projects by name (case-insensitive partial match) - If no matching project found, inform the user and list available projects
- If no
project_nameprovided, prompt the user to select a project - Once project is selected, call
mcp_RC_list_appsto check if an app for this platform already exists
- Call
-
Create App (if needed) Ask for (if not in $ARGUMENTS):
- iOS: Bundle ID from Xcode (e.g.,
com.company.appname) - Android: Package name/applicationId from build.gradle (e.g.,
com.company.appname)
Then call
mcp_RC_create_appwith:- iOS:
type: "app_store",bundle_id: provided value - Android:
type: "play_store",package_name: provided value name: derived from identifier or ask user
- iOS: Bundle ID from Xcode (e.g.,
-
Get API Key
- Call
mcp_RC_list_public_api_keyswith the new app ID - Provide the key with appropriate code snippet (Swift for iOS, Kotlin for Android)
- Call
-
Guide Through Store Setup
For iOS (App Store Connect):
a) In-App Purchase Key (Recommended for StoreKit 2)
- App Store Connect → Users and Access → Integrations → In-App Purchase
- Generate key, download .p8 file
- Note the Key ID and Issuer ID
b) Shared Secret (Legacy StoreKit 1)
- App Store Connect → App → App Information → App-Specific Shared Secret
For Android (Google Play Console):
a) Service Account Credentials
- Create a service account in Google Cloud Console
- Grant "Service Account User" role
- Create JSON key
- In Play Console, grant the service account access with "View financial data" permission
b) Real-time Developer Notifications (RTDN)
- Set up Cloud Pub/Sub topic
- Configure in Play Console → Monetization setup
-
Provide SDK Integration Code Share the appropriate code for the platform.
Example Interactions
Example 1: iOS with project name
User: /rc:create-app ios com.awesomeapp.fitness "Fitness Tracker"
Assistant: I'll help you set up your iOS app in the Fitness Tracker project.
Step 1: Creating App
Creating iOS app with bundle ID: com.awesomeapp.fitness
App created successfully!
- App ID: app1a2b3c4d5
- Name: Fitness App
- Platform: App Store
Step 2: Your API Key
import RevenueCat
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
Purchases.logLevel = .debug // Remove in production
Purchases.configure(withAPIKey: "appl_aBcDeFgHiJkLmNoPqRsT")
return true
}
Step 3: App Store Connect Configuration
You'll need to configure credentials in the RevenueCat dashboard. Here's what to get from App Store Connect:
Option A: In-App Purchase Key (Recommended for StoreKit 2)
- Go to App Store Connect → Users and Access → Integrations
- Click "In-App Purchase" → Generate In-App Purchase Key
- Download the .p8 file and note the Key ID
- Copy the Issuer ID from the top of the page
- Enter these in RevenueCat Dashboard → App Settings
Option B: Shared Secret (Legacy StoreKit 1)
- Go to App Store Connect → Your App → App Information
- Scroll to "App-Specific Shared Secret" → Manage
- Generate or copy the secret
- Enter in RevenueCat Dashboard → App Settings
Step 4: Create Products
Would you like me to help you create products? Use /rc:create-product to add subscriptions or one-time purchases.
Example 2: Android with project name
User: /rc:create-app android com.awesomeapp.fitness "Music Player"
Assistant: I'll help you set up your Android app in the Music Player project.
Step 1: Creating App
Creating Android app with package name: com.awesomeapp.fitness
App created successfully!
- App ID: app1a2b3c4d5
- Name: Fitness App
- Platform: Play Store
Step 2: Your API Key
// Application.kt
import com.revenuecat.purchases.Purchases
import com.revenuecat.purchases.PurchasesConfiguration
class MainApplication : Application() {
override fun onCreate() {
super.onCreate()
Purchases.logLevel = LogLevel.DEBUG // Remove in production
Purchases.configure(
PurchasesConfiguration.Builder(this, "goog_aBcDeFgHiJkLmNoPqRsT").build()
)
}
}
Step 3: Google Play Console Configuration
You'll need to set up service account credentials:
Creating a Service Account:
- Go to Google Cloud Console
- Create a new project or select existing
- Go to IAM & Admin → Service Accounts
- Create Service Account with name like "revenuecat-integration"
- Skip the optional steps, click Done
- Click on the service account → Keys → Add Key → JSON
- Download and save the JSON file securely
Granting Play Console Access:
- Go to Google Play Console
- Go to Users and Permissions → Invite new users
- Enter the service account email (ends with @...iam.gserviceaccount.com)
- Grant these permissions:
- View financial data, orders, and cancellation survey responses
- Manage orders and subscriptions
- Add your app to the service account's access
Upload to RevenueCat: Upload the JSON file in RevenueCat Dashboard → App Settings → Service Credentials
Step 4: Create Products
Would you like me to help you create products? Use /rc:create-product to add subscriptions or one-time purchases.
Note: For Play Store, subscription products use the format product_id:base_plan_id
Example 3: Without platform
User: /rc:create-app
Assistant: I'll help you set up an app. Which platform are you setting up?
- ios - App Store (iPhone, iPad, Mac)
- android - Google Play Store
Example 4: Without project name
User: /rc:create-app ios
Assistant: I'll help you set up an iOS app. First, which project should this app belong to?
Available projects:
- Fitness Tracker
- Recipe App
- Photo Editor
- Music Player
- Task Manager
iOS Checklist
After setting up an iOS app, make sure you have:
- [ ] Added the RevenueCat SDK to your Xcode project
- [ ] Configured your API key in your app
- [ ] Set up App Store Connect credentials in RevenueCat dashboard
- [ ] Created products in App Store Connect
- [ ] Created matching products in RevenueCat
- [ ] Created entitlements and offerings
- [ ] Tested with sandbox account
Swift Package Manager
Add RevenueCat to your project:
https://github.com/RevenueCat/purchases-ios.git
Or with CocoaPods:
pod 'RevenueCat'
Android Checklist
After setting up an Android app, make sure you have:
- [ ] Added the RevenueCat SDK to your app/build.gradle
- [ ] Configured your API key in Application class
- [ ] Created service account and uploaded credentials
- [ ] Created products in Play Console (with base plans for subscriptions)
- [ ] Created matching products in RevenueCat
- [ ] Created entitlements and offerings
- [ ] Set up Real-time Developer Notifications (optional but recommended)
- [ ] Tested with a license tester account
Gradle Setup
Add to your app/build.gradle:
dependencies {
implementation 'com.revenuecat.purchases:purchases:7.+'
}
Or with Kotlin DSL:
dependencies {
implementation("com.revenuecat.purchases:purchases:7.+")
}
Product ID Format (Play Store)
For Play Store Billing Library 5+:
- Subscriptions:
product_id:base_plan_id(e.g.,premium:monthly) - One-time purchases: Just the SKU (e.g.,
lifetime_access)
Notes
iOS
- Use a sandbox Apple ID for testing (Settings → App Store → Sandbox Account)
- Enable StoreKit Testing in Xcode for local development
- The API key shown is the PUBLIC key - safe to include in your app
Android
- Add license testers in Play Console → Setup → License testing
- Service account changes can take up to 24 hours to propagate
- The API key shown is the PUBLIC key - safe to include in your app
- For older apps still on Billing Library 4, use just the product ID for subscriptions
Next.js App Router Expert
Development
A skill that turns Claude into a Next.js App Router expert.
README Generator
Development
Creates professional and comprehensive README.md files for your projects.
API Documentation Writer
Development
Generates comprehensive API documentation in OpenAPI/Swagger format.