revenuecat-customer-center について
RevenueCat のダッシュボードで設定する Customer Center をアプリに追加するスキルです。複数の SDK に対応し、プラットフォームの判定から実装、検証までを案内します。
主な機能
- 01アプリのプラットフォーム判定
- 02Customer Center の設定案内
- 03ユーザーと購入の前提条件
- 04ライフサイクルコールバックの説明
- 05連携の検証手順
活用シーン
- 01アプリ設定へのサブスクリプション管理追加
- 02復元、解約、返金フローへの対応
- 03Customer Center 連携の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ revenuecat/ ai-toolkit --skill revenuecat-customer-centerインストール後、Claude Code で/revenuecat-customer-centerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
platforms/android.mdflutter.mdios.mdkmp.mdreact-native.md詳細
revenuecat-customer-center:RevenueCat Customer Center を追加する
カスタム UI をリリースせずに、ユーザーが有効なサブスクリプションを管理したり、返金を申請したり、解約・復元したり、サポートに問い合わせたりできる既成の UI が必要な場合に、このスキルを使用します。UI は RevenueCat ダッシュボードで設定し、RevenueCatUI SDK によって表示されます。
前提条件:integrate-revenuecat がすでに実行されていること。Customer Center が顧客データを読み込む前に、Purchases.configure(…) が成功している必要があります。
1. プラットフォームを検出する
作業ディレクトリを調べ、上から順に最初に一致したものを選びます。
- React Native:
package.jsonにreact-native-purchasesのエントリーがある、またはreact-nativeが依存関係に含まれている場合。Customer Center はreact-native-purchases-uiに含まれています。platforms/react-native.mdを読みます。expoも依存関係に含まれている場合は、Expo プロジェクトであることを記録します。 - Flutter:プロジェクトルートに
pubspec.yamlがある場合。Customer Center はpurchases_ui_flutterに含まれています。platforms/flutter.mdを読みます。 - Kotlin Multiplatform:
build.gradle.ktsにkotlin { … }のマルチプラットフォームブロックがある、またはcom.revenuecat.purchases:purchases-kmp*に依存している場合。Customer Center のコンポーザブルはpurchases-kmp-uiにあります。platforms/kmp.mdを読みます。 - Android(ネイティブ):
build.gradle(.kts)にcom.android.applicationが適用されている(かつ KMP ではない)場合。Customer Center のコンポーザブルはcom.revenuecat.purchases:purchases-uiにあります。platforms/android.mdを読みます。 - iOS(ネイティブ):プロジェクトルートに
Package.swift、*.xcodeproj、*.xcworkspace、またはPodfileがある場合。CustomerCenterViewはRevenueCatUIにあります。platforms/ios.mdを読みます。
複数の条件に一致する場合(例:Flutter プロジェクト内に ios/ フォルダーがある場合)は、ビルドを管理する外側のプロジェクトを選びます。それでも判断できない場合は、設定するプラットフォームをユーザーに確認します。
2. 共通の概念(すべてのプラットフォーム)
- Customer Center はダッシュボードで設定する UI です。 アクション、文言、プロモーションオファー、返金フロー、解約アンケートの選択肢、サポートの連絡先は、RevenueCat ダッシュボードの Customer Center で定義します。設定がない場合、ビューには最小限のデフォルトレイアウトが表示され、ユーザーにとって役立つ情報はほとんどありません。
- 意味のある内容を表示するには、購入履歴のある識別済みユーザーが必要です。 ユーザーが匿名で購入履歴もない場合、Customer Center は空の状態、または復元のみ可能な状態で表示されます。アプリがログインに対応している場合は、Customer Center を開く前に
Purchases.logIn(userId)を呼び出します。 - Customer Center はペイウォールとは別のものです。 標準的なパターンでは、設定画面に「サブスクリプションを管理」という行を設け、Customer Center を開きます。ペイウォールは新規購入のためのもので、Customer Center は既存のサブスクライバーのためのものです。
- フローは UI が管理します。 復元、解約、返金、プロモーションオファーの各フローはコンポーネント内で実行されます。フローを制御するのではなく、アプリのコードで対応するには、ライフサイクルコールバック(
onRestoreCompleted、onRefundRequestStarted、onManagementOptionSelected、onPromotionalOfferSucceededなど)をリッスンします。 - 利用できる機能はプラットフォームによって異なります。 Customer Center の提供開始は iOS が最も早く、Android、KMP、Flutter、React Native が続いています。各プラットフォームのファイルには、対応状況の差が記載されています。アプリ内で返金を申請できる機能は、Apple のみがアプリ内返金申請を提供しているため、iOS 専用です。Android では「サブスクリプションを管理」の項目から Google Play のサブスクリプション画面に移動します。
- インストールされている SDK バージョンが Customer Center に対応していない場合は、手動のサブスクリプション管理画面で代替します。
Purchases.customerInfo()からユーザーの有効なエンタイトルメントを表示し、Purchases.restorePurchases()ボタンを設置して、ストアのサブスクリプション管理 URL にリンクします。Customer Center の全機能を使いたい場合は、SDK をアップグレードするようユーザーに案内します。
3. 実装
検出結果に一致するプラットフォームのファイルを読みます。
platforms/ios.mdplatforms/android.mdplatforms/kmp.mdplatforms/flutter.mdplatforms/react-native.md
各プラットフォームのファイルには、インストールコマンド、カスタマーセンターを表示するための正確なスニペット、コールバックの形式がすべて記載されています。
4. 検証
次の条件を満たすまでは、統合が完了したと判断しないでください。
- 対象プラットフォームでプロジェクトがビルドされること。
- 少なくとも1つの有効なサンドボックスサブスクリプションを持つテストユーザーでアプリにサインインします。カスタマーセンターを開くコードパスを実行します。UI が読み込まれ、サブスクリプションがリストに表示されることを確認します。
- 設定済みのアクションが少なくとも1つ、最初から最後まで実行されること。最も簡単な確認方法は、購入を復元をタップし、復元完了コールバックが空でない
customerInfo.entitlements.activeマップとともに呼び出されることを確認することです。ダッシュボードでキャンセル/返金/サポートのアクションを設定している場合は、ユーザーが操作したときに対応するコールバック(onManagementOptionSelected、onRefundRequestStartedなど)が呼び出されることを確認します。 - カスタマーセンターを閉じると
onDismissコールバックが呼び出されること。
カスタマーセンターが開いても何も表示されない場合は、サインイン中のユーザーに購入履歴がないか、ダッシュボードのカスタマーセンターセクションが設定されていません。ダッシュボードで修正して再読み込みし、もう一度試してください。