Automated summary
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
How this analysis is madeExamples
/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
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/revenuecat-app-setup-mm8o52fh/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/revenuecat-app-setup-mm8o52fh' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/revenuecat-app-setup-mm8o52fh/download' --output '.skill-downloads/revenuecat-app-setup-mm8o52fh/SKILL.md.part' && mv '.skill-downloads/revenuecat-app-setup-mm8o52fh/SKILL.md.part' '.skill-downloads/revenuecat-app-setup-mm8o52fh/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/revenuecat-app-setup-mm8o52fh/SKILL.md' && test -s '.skill-downloads/revenuecat-app-setup-mm8o52fh/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/create-app' && cp -R '.skill-downloads/revenuecat-app-setup-mm8o52fh' '.claude/skills/create-app'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/revenuecat-app-setup-mm8o52fh'openskills read 'revenuecat-app-setup-mm8o52fh'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/revenuecat-app-setup-mm8o52fh/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
React Hook Form Best Practices
Development
Master React Hook Form: avoid anti-patterns, manage subscriptions, and handle reset, dirty state, and controlled inputs correctly.
Emotion to Mantine Migration
Development
Migrate Emotion styled-components to Mantine components with style props and CSS modules. Use when converting .styled.tsx files or removing @emotion imports.
Scope Creep Detector
Development
Analyzes git diffs against a stated intent to detect scope creep, unrelated files, broad PRs, and oversized changes, then suggests keep, split, or justify actions.