Skip to main content

RevenueCat

Overview

RevenueCatのテストについてまとめたセクション。

ローカルテスト

RevenueCatでローカルテストを行うには、プラットフォームごとの挙動を把握しつつ、「サンドボックス環境」または「StoreKit Configuration / Google Playのテスト購入」などを組み合わせる必要がある。

共通事項:RevenueCatのローカルテストの概要

RevenueCatでは、ローカルでのテスト中でも以下を行うことが可能

  • 実機またはエミュレータ上でのサブスクリプション購入処理
  • Webhookイベントの確認(デバッグ時に debug_logs が発生)
  • Entitlement(権利)の付与ロジックの確認
  • 購入のステータス(有効/無効)の変化をシミュレート
tip

ただし「完全なローカルMock」は提供しておらず、Apple/Googleのサンドボックス環境を利用するのが基本

iOSローカルテスト(StoreKit + RevenueCat)

1. StoreKit Configurationファイルを使う(完全ローカル)

  1. Xcodeで .storekit ファイルを作成し、仮のサブスクリプション商品を定義
  2. Xcodeの「Scheme > StoreKit Configuration」で設定ファイルを指定
  3. RevenueCat SDKで useStoreKit2IfAvailable = true(iOS15以降)を設定
  4. 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の発行
  • サブスクの有効期限や更新をリアルタイムで確認可能。