目次
AndroidのRevenueCatサブスク
先日iOSで完成していたRevenueCatのサブスク購入フローを、
本日Androidでも動作確認することができました!
テスト環境の準備
Androidのサブスクテストには以下の3つが必要です。
Google Play Console側:
- サブスク商品の作成(月額プラン)
- ライセンステスターへのメールアドレス登録
RevenueCat側:
- Android appのApp IDを
パッケージネームに設定 - Google Playとの連携設定
コード側:
purchase_service.dartでプラットフォームを自動判定
if (Platform.isAndroid) {
configuration = PurchasesConfiguration(_androidApiKey);
} else {
configuration = PurchasesConfiguration(_iosApiKey);
}
テストの流れ
1. Firestoreの事前リセット
テスト前に is_premium: false に戻しておくことが重要です。
RevenueCatダッシュボードの購入履歴もクリアしておくとクリーンなテストができます。
2. アップグレードダイアログを表示
カレンダー画面を開くと、ロック画面が表示されます。
「プレミアムにアップグレード」をタップすると…

画面下部に 「🖊️ テスト用: 無料でアンロック」 の表示が!
RevenueCatがライセンステスターを正しく認識している証拠です。
3. Google Playの購入確認画面
プレミアムプラン
月謝袋アプリ
開始日: 今日 ¥300 / 5分
テストカード、常に承認
「請求が行われることはありません」

テスト購入では5分サイクルで更新されます(本番は1ヶ月)。
「定期購入」ボタンをタップ。
4. 購入完了 ✅

「定期購入しました ✅」の画面が表示され、
Firestoreを確認すると:
is_premium: true
premium_purchased_at: 2026年3月24日 10:37:27
カレンダー画面も自動でアンロックされました!
ハマりポイント:Entitlement IDの完全一致
RevenueCatのEntitlement IDはコードと完全一致が必要です。
スラッシュ・大文字小文字・スペースまで含めて一致させてください。
// NG例
static const String entitlementId = 'monthly_fee_stamp_pro';
// OK例(ダッシュボードのIdentifierをそのままコピー)
static const String entitlementId = 'SINQWELL/Monthly Fee Stamp Pro';
iOS・Android両対応完了
| プラットフォーム | 購入フロー | Firestore保存 | カレンダー解放 |
|---|---|---|---|
| iOS (Sandbox) | ✅ | ✅ | ✅ |
| Android (テスト) | ✅ | ✅ | ✅ |
これで月謝袋アプリのサブスク機能が両プラットフォームで完成しました!
おわりに
RevenueCatを使えば、iOSとAndroidのサブスク処理を
ほぼ同じコードで実装できます。
個人開発者にとって、課金周りの実装は心理的ハードルが高いですが、
RevenueCatのおかげでかなりシンプルに実装できました。
次のステップはストアへの申請と、既存ユーザーへのアップデート配信です 🚀
