やること
Firebase側の準備
Firebase Authenticationで匿名ログインの許可
Firebase Authenticationで匿名ログインを許可する。これはあとで出てくる「レシート情報」をFirebase Databaseで管理させたいため。操作の仕方としては、Authenticationのメニューから[匿名]をクリックし、
[有効にする]のボタンを押して、[保存]を押すだけ。
Firestoreの有効化
レシート情報を確保しておくためにFirestoreを使います。
RevenueCatがサービス内容を変更したりサービス終了したりすることに備えます。
(まぁそれ言うと他のどのサービスが死んでも立ち行かなくなりますが)
FirebaseコンソールからFirestoreを有効化します。
AndroidManifest.xmlの編集、バイナリのアップロード
まずGoogle Play Consoleに定期購入アイテムを作る前段階として、AndroidManifest.xmlに以下の宣言を設定済みのバイナリをアップロードしておかなければなりません。
アップロードは、製品版であげなくて大丈夫です。AlphaリリースでもOKです。とにかくアップロードします。
<manifest> <application> </application> <!-- 定期購入アイテム作成のために、請求権限を追加 --> <uses-permission android:name="com.android.vending.BILLING" /> </manifest>
定期購入アイテムの作成
バイナリのアップロードが完了すると、Googleコンソールで定期購入アイテムを作成することができるようになります。
[定期購入を作成]をクリックします。
FlutterでAndroidとiOSに同じアプリをリリースすることが多いので、
アイテムIDに使う英字は小文字だけにするようにしています。大文字を使うと、Google Paly Console側でアイテムIDを入力できなくなるからです。アイテムIDをiOSと統一しておけば、RevenueCatの設定が半分ですみます。
[説明]や[名前]は、別に合わせる必要はないと思います。適当で。登録が完了したらこんな感じの画面になります。
RevenueCat側の設定
Entitlements/Offerings/Packages/Productsという概念について
RevenueCatには、課金アイテムを管理する概念として、Entitlements, Offerings, Packages, Productsというものがあります。iOSやAndroidにはない概念もあり、ぱっと見理解が難しいですがそれぞれ見ていこうと思います。
Products
Productsは、一番下層の概念です。
App Store Connectで作成するApp内課金アイテム、Google Play Consoleで作成する定期購入アイテムに相当する概念です。それらと1:1で対をなします。Productsについては理解することは容易いと思います。
Packages
Packagesは、Productsのひとつ上の上位層の概念です。
複数のProductsをまとめて一つにして扱うものです。
例えば、iOS用の1ヶ月課金アイテムとAndroid用の1ヶ月課金アイテムを一つの「1ヶ月パッケージ」にまとめる、といった概念で使用します。
Offering
Offeringは、Packagesのひとつ上の上位層の概念です。
複数のPackagesをまとめて一つにして扱うものです。
通常の使い方であれば、Offeringは一つだけ存在していれば運用できます。
例えばアプリを利用するユーザにアプリがいくつかの区分を持たせているようなとき(ブロンズレベル、シルバーレベル、ゴールドレベル、プラチナレベルのような区分があったとして)、
ブロンズレベルのユーザーにはOffer_Bronzeをみせる、シルバーレベルのユーザーにはOffer_Silverを見せる、といった使い方をすることができます。
まぁ、通常そこまで凝ったことを個人アプリ開発ですることはないと思うので、Offeringはアプリに対して1つ存在していればいいと思います。
Entitlements/Offerings/Packages/Productsを作っていく
Productsを作る
RevenueCatから[Configuration]→[Products]を選択します。その後右上の[+ New]をクリックします。
Identifierには、App Store Connect, Google Play Consoleで登録するときに指定したIDと同じものを入力します。
そして、[App Store]か[Play Store]かも選びます。
必要なアイテム数これを繰り返します。