RevenueCat
Overview
RevenueCatのテストについてまとめたセクション。
ローカルテスト
RevenueCatでローカルテストを行うには、プラットフォームごとの挙動を把握しつつ、「サンドボックス環境」または「StoreKit Configuration / Google Playのテスト購入」などを組み合わせる必要がある。
共通事項:RevenueCatのローカルテストの概要
RevenueCatでは、ローカルでのテスト中でも以下を行うことが可能
- 実機またはエミュレータ上でのサブスクリプション購入処理
- Webhookイベントの確認(デバッグ時に debug_logs が発生)
- Entitlement(権利)の付与ロジックの確認
- 購入のステータス(有効/無効)の変化をシミュレート
tip
ただし「完全なローカルMock」は提供しておらず、Apple/Googleのサンドボックス環境を利用するのが基本
iOSローカルテスト(StoreKit + RevenueCat)
1. StoreKit Configurationファイルを使う(完全ローカル)
- Xcodeで .storekit ファイルを作成し、仮のサブスクリプション商品を定義
- Xcodeの「Scheme > StoreKit Configuration」で設定ファイルを指定
- RevenueCat SDKで useStoreKit2IfAvailable = true(iOS15以降)を設定
- RevenueCatに同じProduct IDを定義しておけば、同様に Entitlement を付与可能
caution
AppUserID による切り替えや、Sandbox Purchase Receiptの検証が発生しないため、WebhookやPurchase historyは動作しない。
② AppleのTestFlightサンドボックスでテストする(本番に近い)
- TestFlightにアップロードしたビルドで、TestFlightユーザーが実際にサブスクリプションを購入
- RevenueCatはAppleのSandbox Receiptを検証し、実際のWebhookイベントがトリガーされる
Androidローカルテスト(Play Billing + RevenueCat)
1. Google Play サンドボックスを使う(本番用ビルド必要)
- Google Play Console にアルファ/内部トラックでアップロード
- テストユーザー(gmail)を追加する
- 対象ユーザーがアプリをPlay Store経由でインストールすると「テスト課金」ができる
- RevenueCatの debug_logs で確認、Entitlement が発行される
caution
エミュレータ上での動作には限界あり。本番ビルド&内部テスト版でのテスト推奨。
RevenueCat SDK側で必要な設定
1. SDKの初期化時にログレベルを上げる
Purchases.setLogLevel(LogLevel.debug);
2. ユーザーIDの指定(任意)
await Purchases.logIn("test_user_123");
3. Entitlement の取得・確認
final purchaserInfo = await Purchases.getCustomerInfo(); final isPro = purchaserInfo.entitlements.all["premium"]?.isActive ?? false;
4. サブスク購入処理
final offerings = await Purchases.getOfferings(); final package = offerings.current?.monthly; await Purchases.purchasePackage(package!);
補足:Webhookの代わりにログで確認
- RevenueCatの Customer View やコンソール上の 「Debug Logs」 にて、
- サンドボックス購入成功
- Entitlementの発行
- サブスクの有効期限や更新をリアルタイムで確認可能。