RevenueCat(アプリ内課金サービス)の統合・セットアップ — ダッシュボード側を RevenueCat MCP(マルチユーズプロトコル)経由で設定し(プロジェクト、アプリ、公開 API キー)、Purchases SDK(購入機能ライブラリ)をアプリにインストール・設定します。 次のような場合に使用:ユーザーが RevenueCat の追加、Purchases の統合、RevenueCat SDK のインストール、RevenueCat API キーの設定、起動時の Purchases 設定、または iOS、Android、Kotlin Multiplatform、Flutter、React Native での新規 RevenueCat 統合セットアップをリクエストした場合。
End-to-end RevenueCat integration — sets up the dashboard side via the RevenueCat MCP (project, app, public API key) and installs/configures the Purchases SDK in the app. Use when the user asks to add RevenueCat, integrate Purchases, install the RevenueCat SDK, set up a RevenueCat API key, configure Purchases on launch, or set up a brand new RevenueCat integration on iOS, Android, Kotlin Multiplatform, Flutter, or React Native.
次のような場合に使用:
このスキルは2つのパートで構成されます:
Purchases.configure(…) の呼び出し、ログ上の設定確認バナーの検証を行う。上記の順番で進めること。「SDKをインストールするだけでよい」とユーザーが言っている場合でも、ほとんどの統合では両方のパートが必要です — SDKにはダッシュボードで取得したAPIキーが必要なためです。
プロジェクトとアプリがすでに存在しており、SDKをコードに組み込むだけでよい場合は、下記の セクション3 にジャンプしてください。 まったく新しいRevenueCatプロジェクト(アプリ・プロダクト・エンタイトルメント・オファリングを含む)をゼロから構築したい場合は、代わりに
create-revenuecat-projectスキルを使用し、その後SDKインストールのためにここに戻ってきてください。
スラッシュコマンドとして呼び出す際、$ARGUMENTS として利用可能:
platform(任意): ios、android、kmp、flutter、react-native のいずれか。省略した場合は、セクション3aの検出アルゴリズムを実行する。app_identifier(任意): バンドルID(iOS)またはパッケージ名(Android)。省略した場合は、プロジェクトファイル(Info.plist、AndroidManifest.xml、app.json、pubspec.yaml)から読み取る。project_name(任意): 使用するRevenueCatプロジェクトの名前。省略した場合は、MCPでプロジェクト一覧を取得してユーザーに確認する。ダッシュボードに触れる前に、以下の情報を収集する:
Info.plist / AndroidManifest.xml / app.json / pubspec.yaml から取得する。以下のすべてのツール呼び出しにはRevenueCat MCPサーバーを使用する。
list-projects — アクセス可能なプロジェクトを一覧表示する。複数ある場合は、このアプリに対応するプロジェクトをユーザーに選んでもらうか、新規作成を提案する。create-revenuecat-project スキルに引き渡してから、ここに戻る。project_id を保持する。test_store アプリは常に存在するが、app_store および play_store アプリはストア側のセットアップが完了している場合にのみ存在する。test_store アプリだけで統合を始められる旨を伝えて安心させること。create-app を呼び出す:
type: "app_store"、セクション1で取得した bundle_id。type: "play_store"、セクション1で取得した package_name。name は識別子から導出するか、ユーザーに確認する。list-public-api-keys を呼び出す:
app_store / play_store。test_store アプリ。appl_…、Androidキーは goog_…、Amazonキーは amzn_…。シークレットAPIキーはクライアントコードに絶対に使用しないこと。 シークレットキーはサーバーサイド専用です。
作業ディレクトリを確認し、上から順に 最初に一致したもの を採用する:
package.json に react-native-purchases エントリがある、または react-native が依存関係に含まれている → platforms/react-native.md を読む。expo も依存関係にある場合は、Expoプロジェクトとして記録する。pubspec.yaml が存在する → platforms/flutter.md を読む。build.gradle.kts に kotlin { … } マルチプラットフォームソースセットブロックが含まれているか、com.revenuecat.purchases:purchases-kmp* に依存している → platforms/kmp.md を読む。build.gradle(.kts) が com.android.application を適用している(KMPでない場合)→ platforms/android.md を読む。Package.swift、*.xcodeproj、*.xcworkspace、または Podfile が存在する → platforms/ios.md を読む。複数一致する場合(例: Flutterプロジェクト内に ios/ フォルダがある場合)は、ビルドを所有する 最も外側の プロジェクトを選ぶ。それでも判断できない場合は、どのプラットフォームを設定したいかユーザーに確認する。
appl_… キー、Androidアプリは goog_… キー(Amazonは amzn_…)を使用する。サーバーサイドのシークレットキーはクライアントアプリに絶対に含めてはならない。Purchases.configure(…) は、できるだけ早い段階(アプリのエントリーポイント)で、正確に1回だけ呼び出す。2回目以降の呼び出しは無視されるか警告が出る。appUserID を渡さない場合、RevenueCatは安定した匿名IDを生成する。appUserID を渡すのは、起動時にすでに認証済みユーザーが存在する場合のみ。それ以外は後から logIn(…) を呼び出すこと(revenuecat-identify-user スキルを参照)。.env(React Native)、xcconfig(iOS)、local.properties / gradle.properties(Android)、dart-define(Flutter)を推奨する。検出結果に対応するプラットフォームファイルを読む:
platforms/ios.mdplatforms/android.mdplatforms/kmp.mdplatforms/flutter.mdplatforms/react-native.md各プラットフォームファイルは自己完結型で、インストールコマンド、正確な configure スニペット、およびアプリエントリーポイントへの配置場所が記載されている。
以下がすべて完了するまで、セットアップ完了を宣言しないこと:
./gradlew assembleDebug、flutter run、npx react-native run-ios、またはKMP相当のコマンド)。アプリを実行せずに「インストールだけ」を求めていたユーザーには、実際に実行した際にログで確認すべき内容を伝えること。
プロジェクトにプロダクト、エンタイトルメント、オファリングがすでに設定されているか確認する。設定されていない場合は、create-revenuecat-project スキルを通じてサポートを申し出る。
iOS(App Store Connect)
.p8 ファイルをダウンロードする。キーIDと発行者IDを記録する。create-app / update-app を通じてRevenueCat側に登録する。Android(Google Play Console)
create-app / update-app を通じて登録する。integrate-revenuecat 実行後によく使われる後続スキル:
revenuecat-paywall — ダッシュボードで設定したペイウォールを表示する。revenuecat-purchase-flow — 購入とリストアを手動で実装する。revenuecat-entitlements-gate — アクティブなエンタイトルメントに基づいて機能を制限する。revenuecat-identify-user — アプリの認証システムに logIn / logOut を連携させる。revenuecat-testing-setup — サンドボックステスト環境をセットアップする。revenuecat-troubleshoot — オファリング / プロダクト / エンタイトルメントの不具合を診断する。Use this skill when the user wants to add RevenueCat to a project for the first time, or to reconfigure the SDK with a public API key. The skill covers two halves:
Purchases.configure(…) at app entry, and verify the configuration banner in the logs.Walk them in order. Most integrations need both halves, even when the user asks "just install the SDK" — the SDK needs an API key from the dashboard.
If a project + app already exist and the user only wants to wire the SDK into code, jump to Section 3 below. If the user wants to bootstrap a brand new RevenueCat project (apps + products + entitlements + offerings), use the
create-revenuecat-projectskill instead, then come back here for the SDK install.
Available as $ARGUMENTS when invoked as a slash command:
platform (optional): One of ios, android, kmp, flutter, react-native. If omitted, run the detection algorithm in Section 3a.app_identifier (optional): Bundle ID (iOS) or package name (Android). If omitted, read it from the project files (Info.plist, AndroidManifest.xml, app.json, pubspec.yaml).project_name (optional): Name of the RevenueCat project to use. If omitted, list projects via MCP and ask the user.Before touching the dashboard, gather the facts:
Info.plist / AndroidManifest.xml / app.json / pubspec.yaml rather than asking.Use the RevenueCat MCP server for every tool call below.
list-projects — list accessible projects. If multiple, ask the user which one matches this app, or offer to create a new one.create-revenuecat-project skill, then resume here.project_id for the rest of the steps.test_store app is always present; app_store and play_store apps are present only if the user has finished store-side setup.test_store app is enough to start integrating.create-app:
type: "app_store", bundle_id from Section 1.type: "play_store", package_name from Section 1.name derived from the identifier or asked from the user.list-public-api-keys with the relevant app ID:
app_store / play_store if the store-side app exists.test_store app.appl_…, Android keys goog_…, Amazon amzn_….Never use the secret API key in client code. Secret keys are server-side only.
Inspect the working directory and pick the first match, from top to bottom:
package.json has a react-native-purchases entry, or react-native as a dependency → read platforms/react-native.md. If expo is also a dependency, note it as an Expo project.pubspec.yaml exists at the project root → read platforms/flutter.md.build.gradle.kts contains a kotlin { … } multiplatform source sets block, or depends on com.revenuecat.purchases:purchases-kmp* → read platforms/kmp.md.build.gradle(.kts) applies com.android.application (and is not KMP) → read platforms/android.md.Package.swift, *.xcodeproj, *.xcworkspace, or Podfile at the project root → read platforms/ios.md.If several match (e.g. an ios/ folder inside a Flutter project), pick the outermost project, the one that owns the build. If still ambiguous, ask the user which platform they want to configure.
appl_… key, Android apps use a goog_… key (Amazon uses amzn_…). Server-side secret keys must never appear in client apps.Purchases.configure(…) exactly once, as early as possible (app entry point). Later calls no-op or warn.appUserID, RevenueCat creates a stable anonymous ID. Only pass appUserID if you already have an authenticated user at launch; otherwise call logIn(…) later (see the revenuecat-identify-user skill)..env (RN), xcconfig (iOS), local.properties / gradle.properties (Android), or dart-define (Flutter) when the user asks about secret management.Read the platform file that matches detection:
platforms/ios.mdplatforms/android.mdplatforms/kmp.mdplatforms/flutter.mdplatforms/react-native.mdEach platform file is self-contained: install command, exact configure snippet, and where to place it in the app entry point.
Do not claim setup is complete until:
./gradlew assembleDebug, flutter run, npx react-native run-ios, or the KMP equivalent).If the user only asked to "install" without running the app, tell them what to look for in the logs when they do run it.
Check whether products, entitlements, and offerings are already set up in the project. If not, offer to help via the create-revenuecat-project skill.
iOS (App Store Connect)
.p8 file. Note the Key ID and Issuer ID.create-app / update-app.Android (Google Play Console)
create-app / update-app.Common follow-ups after integrate-revenuecat:
revenuecat-paywall — display a dashboard-configured paywall.revenuecat-purchase-flow — implement purchase + restore manually.revenuecat-entitlements-gate — gate features behind active entitlements.revenuecat-identify-user — wire logIn / logOut to the app's auth system.revenuecat-testing-setup — set up a sandbox testing channel.revenuecat-troubleshoot — diagnose offerings / products / entitlement bugs.原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。