integrate-revenuecat について
iOS、Android、Kotlin Multiplatform、Flutter、React Native アプリへの RevenueCat 導入や再設定を支援するスキルです。ダッシュボード設定、SDK 構成、動作確認、ペイウォール方式の選択を案内します。
主な機能
- 01RevenueCat のプロジェクトとアプリの設定
- 02公開 SDK キーの取得
- 03プラットフォーム別 SDK の導入
- 04ビルドと設定の確認
- 05ペイウォール方式の選択
活用シーン
- 01アプリを RevenueCat プロジェクトに接続
- 02Purchases SDK の設定
- 03ビルドとログによる構成確認
- 04ホスト型またはカスタムのペイウォール選択
MCP 対応
RevenueCat MCP サーバーまたは `rc` CLI で、プロジェクトやアプリの一覧表示、公開 API キーの取得などのダッシュボード操作を行えます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ revenuecat/ ai-toolkit --skill integrate-revenuecatインストール後、Claude Code で/integrate-revenuecatを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
platforms/android.mdflutter.mdios.mdkmp.mdreact-native.md詳細
integrate-revenuecat:RevenueCat のエンドツーエンド統合
ユーザーがプロジェクトに初めて RevenueCat を追加したい場合、または公開 API キーを使って SDK を再設定したい場合に、このスキルを使用します。このスキルでは、次の 2 つの作業を扱います。
- ダッシュボード側 — RevenueCat MCP サーバーまたは
rcCLI を使って、プロジェクトを設定し、アプリを登録して、公開 API キーを取得します。 - アプリ側 — Purchases SDK をインストールし、アプリのエントリーポイントで
Purchases.configure(…)を呼び出して、ログで設定バナーを確認します。
SDK の設定後、ペイウォールの構築方法を決めてから(セクション 5c)、ペイウォールのコードを記述します。
順番に進めてください。ユーザーが「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 またはrc projects list)、ユーザーに確認します。
1. 現状を把握する
ダッシュボードを操作する前に、必要な情報を集めます。
- 対象プラットフォーム:iOS/Apple App Store、Android/Google Play、または両方です。質問する前に作業ディレクトリを調べてください。ほとんどのプロジェクトでは、セクション 3 の検出アルゴリズムで明らかになります。
- テクノロジー:ネイティブ iOS(Swift)、ネイティブ Android(Kotlin/Java)、React Native、Flutter、Kotlin Multiplatform。SDK の一覧:https://www.revenuecat.com/docs/getting-started/installation.md。
- アプリ識別子:バンドル ID(iOS)、パッケージ名(Android)。ユーザーに尋ねるのではなく、
Info.plist/AndroidManifest.xml/app.json/pubspec.yamlから取得します。
2. ダッシュボード側
ユーザーが利用できる方法として、RevenueCat MCP サーバーまたは rc CLI のいずれかを使用します(CLI の確認方法と規約については revenuecat-cli スキルを参照してください)。この手順では、どちらの方法でも同じ操作を行えます。各手順には MCP ツールと rc コマンドが記載されています。
2a. プロジェクトを取得または作成する
- アクセス可能なプロジェクトを一覧表示します:
list-projects(MCP)またはrc projects list。複数ある場合は、このアプリに対応するものをユーザーに確認するか、新しいプロジェクトの作成を提案します(create-project/rc projects create)。 - プロジェクトがない場合は、
create-revenuecat-projectスキルに引き継いでから、ここに戻ります。 - 残りの手順で使う
project_idを保存します。
2b. アプリを取得または作成する
- プロジェクトですでに設定されているアプリを確認します(
list-apps/rc apps list)。test_storeアプリは常に存在します。app_storeアプリとplay_storeアプリは、ユーザーがストア側の設定を完了している場合にのみ存在します。 - ユーザーに、アプリが App Store Connect(iOS)または Google Play Console(Android)ですでに設定済みか確認します。ストア側の設定は後からでも行えること、統合の開始には
test_storeアプリで十分であることを伝えてください。 - ユーザーがストア側の設定は完了済みと回答した場合は、
create-app(またはrc apps create)を呼び出します。- iOS:
type: "app_store"を指定し、bundle_idにはセクション 1 の値を使います。 - Android:
type: "play_store"を指定し、package_nameにはセクション 1 の値を使います。 nameは識別子から決めるか、ユーザーに確認します。
- iOS:
2c. 公開 API キーを取得する
- 該当するアプリ ID の公開キーを一覧表示します。
list-public-api-keys(MCP)またはrc apps keys <app-id>を使用します。- ストア側のアプリが存在する場合は、
app_store/play_storeを指定します。 - それ以外の場合は、
test_storeアプリを指定します。
- ストア側のアプリが存在する場合は、
- 返されるキーは公開キーであり、クライアントアプリのコードに埋め込んでも安全です。iOS のキーには
appl_…、Android のキーにはgoog_…、Amazon のキーにはamzn_…が先頭に付きます。
クライアントコードでシークレット API キーを使用しないでください。 シークレットキーはサーバー側専用です。
3. アプリ側 — SDK をインストールして設定する
3a. プラットフォームを検出する
作業ディレクトリを調べ、上から順に最初に一致したものを選びます。
- React Native:
package.jsonにreact-native-purchasesのエントリーがある、または依存関係にreact-nativeが含まれている場合 →platforms/react-native.mdを読みます。expoも依存関係に含まれている場合は、Expo プロジェクトとして扱います。 - Flutter:プロジェクトルートに
pubspec.yamlが存在する場合 →platforms/flutter.mdを読みます。 - Kotlin Multiplatform:
build.gradle.ktsにkotlin { … }のマルチプラットフォームソースセットブロックが含まれている、またはcom.revenuecat.purchases:purchases-kmp*に依存している場合 →platforms/kmp.mdを読みます。 - Android(ネイティブ):
build.gradle(.kts)でcom.android.applicationを適用しており、KMP ではない場合 →platforms/android.mdを読みます。 - iOS(ネイティブ):プロジェクトルートに
Package.swift、*.xcodeproj、*.xcworkspace、またはPodfileが存在する場合 →platforms/ios.mdを読みます。
複数の条件に一致する場合(例:Flutter プロジェクト内の ios/ フォルダー)は、ビルドを所有する最も外側のプロジェクトを選びます。それでも判断できない場合は、設定したいプラットフォームをユーザーに確認します。
3b. 共通概念(すべてのプラットフォーム)
- シークレットキーではなく、公開 SDK キーを使用します。 RevenueCat はストア/プラットフォームごとに個別の公開 SDK キーを発行します。iOS アプリでは
appl_…キー、Android アプリではgoog_…キーを使用します(Amazon ではamzn_…を使用します)。サーバー側のシークレットキーをクライアントアプリに含めてはいけません。 - アプリの起動ごとに一度だけ設定します。
Purchases.configure(…)はアプリのエントリーポイントで、できるだけ早く、正確に一度だけ呼び出します。以降の呼び出しは何も行わないか、警告を出します。 - デフォルトでは匿名ユーザーを使用します。
appUserIDを渡さない場合、RevenueCat は固定の匿名 ID を作成します。起動時に認証済みユーザーがいる場合に限りappUserIDを渡します。それ以外の場合は、後でlogIn(…)を呼び出します(revenuecat-identify-userスキルを参照)。 - 統合中はデバッグログを有効にします。 方法は各プラットフォームのファイルに記載されています。リリースビルドでは無効にしてください。
- キーをソース管理に含めないでください。 ユーザーがシークレットの管理方法について尋ねた場合は、
.env(RN)、xcconfig(iOS)、local.properties/gradle.properties(Android)、または dart-define(Flutter)を推奨します。
3c. 実装
検出結果に一致するプラットフォームのファイルを読みます。
platforms/ios.mdplatforms/android.mdplatforms/kmp.mdplatforms/flutter.mdplatforms/react-native.md
各プラットフォームのファイルには、インストールコマンド、正確な configure のスニペット、アプリのエントリーポイント内での配置場所がすべて記載されています。
4. 検証する
次の条件を満たすまでは、セットアップが完了したと断言しないでください。
- プロジェクトがビルドできること(Xcode ビルド、
./gradlew assembleDebug、flutter run、npx react-native run-ios、または KMP に相当するコマンド)。 - アプリが起動し、RevenueCat SDK の設定バナーがコンソール/logcat/Metro の出力に表示されること(期待されるログ行は各プラットフォームのファイルに記載されています)。
- SDK による最初のネットワーク呼び出しで認証エラーが発生しないこと。API キーが間違っている場合、アプリがオファリングを取得した時点で認証エラーのログが表示されます。
ユーザーがアプリを実行せずに「インストール」だけを依頼した場合は、実行時にログで確認する内容を伝えます。
5. 次のステップ
5a. 商品、エンタイトルメント、オファリング
商品、エンタイトルメント、オファリングがプロジェクトですでに設定されているか確認します。まだ設定されていない場合は、create-revenuecat-project スキルを使ったサポートを申し出ます。
5b. ストア側のセットアップ
iOS(App Store Connect)
- アプリ内課金キー(StoreKit 2 での使用を推奨) — App Store Connect → Users and Access → Integrations → In-App Purchase に移動します。キーを生成し、
.p8ファイルをダウンロードします。Key ID と Issuer ID を控えておきます。 - 共有シークレット(従来の StoreKit 1) — App Store Connect → App → App Information → App-Specific Shared Secret に移動します。
- ユーザーからこの情報が提供された場合は、
create-app/update-appを使って RevenueCat 側に登録します。
Android(Google Play Console)
- サービスアカウントの認証情報 — Google Cloud Console でサービスアカウントを作成します。「Service Account User」ロールを付与し、JSON キーを作成します。Play Console で「View financial data」権限を付与して、サービスアカウントへのアクセスを許可します。
- リアルタイムデベロッパー通知(RTDN) — Cloud Pub/Sub トピックをセットアップします。Play Console → Monetization setup で設定します。
- ユーザーからこの情報が提供された場合は、
create-app/update-appを使って登録します。
5c. ペイウォールの構築方法を選ぶ
アプリには引き続きペイウォールが必要で、構築方法は 2 つあります。これは実装の詳細ではなく、製品上の判断事項です。そのため、ペイウォールのコードを書く前に決めてください。
- RevenueCat Paywall(デフォルトで推奨)。 RevenueCat がホストし、RevenueCatUI が表示します。ペイウォールは自分で作成します。
revenuecat-paywall-designスキルを読み込み、その作成ワークフローに従います(MCP 経由のcreate-paywall-aiまたは CLI 経由のrc paywalls generateを使用し、現在のオファリングに紐付けて、アプリのコードベースを参考にします)。その後、revenuecat-paywallを使って表示します。ユーザーがダッシュボードでデザインする必要はありません。後からペイウォールビルダーで調整できます。アプリをリリースしなくてもデザイン、コピー、パッケージを変更でき、RevenueCat Experiments でペイウォールのバリアントを A/B テストできます。 - コードで実装するカスタムペイウォール。 アプリ独自の UI を使い、
getOfferings()からパッケージと価格を取得し、revenuecat-purchase-flowで購入を処理します。見た目を完全に制御できますが、デザインを変更するたびにアプリのリリースが必要で、ペイウォールのデザインを A/B テストすることはできません。パッケージはオファリングから取得されるため、価格とオファリングのテストは引き続き機能します。
どちらにするか選びます。
- ユーザーがすでに希望を伝えている場合。 その希望に従います。
- アプリにまだペイウォール画面がない場合。 RevenueCat Paywall を推奨します。
- アプリにすでにペイウォールまたはサブスクリプション画面がある場合(プランや価格の一覧、購読またはアップグレードボタン、ハードコードされた価格や商品 ID がある画面)。ユーザーはおそらく、その画面をオファリングに接続したいと考えています。既存の画面を維持することを推奨し、RevenueCat Paywall に置き換えることもできると伝えます。
ユーザーに質問できる場合は、両方の選択肢を含む質問を 1 つします。推奨する選択肢を先にし、それぞれにトレードオフを 1 行で説明します。質問できない場合(たとえば、非対話形式で実行している場合)も、作業を止めないでください。上記の推奨に従い、まとめで選んだ方法と、もう一方に切り替える方法を伝えます。
コード内で作業を完結できるという理由だけで、デフォルトでペイウォール画面を手作業で実装しないでください。新しい RevenueCat Paywall は未公開のドラフトです。ペイウォールビルダーで確認するようユーザーに伝え、ユーザーから依頼があった場合にのみ公開してください。ペイウォールを公開してオファリングに紐付けるまでは、アプリにデフォルトのフォールバックレイアウトが表示されます。
5d. 以降に使用するスキル
integrate-revenuecat の後によく使われるスキルは次のとおりです。
revenuecat-paywall-design— ダッシュボードのペイウォールを作成または編集します。revenuecat-paywall— ダッシュボードで設定したペイウォールを表示します。revenuecat-purchase-flow— カスタムペイウォールの購入と復元を実装します。revenuecat-entitlements-gate— 有効なエンタイトルメントに基づいて機能へのアクセスを制限します。revenuecat-identify-user— アプリの認証システムにlogIn/logOutを接続します。revenuecat-testing-setup— サンドボックスのテストチャネルをセットアップします。revenuecat-troubleshoot— オファリング、商品、エンタイトルメントに関する不具合を診断します。