くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

RevenueCat入門 その7 | SDKのインストール&初期化処理

前回の続き。SDKのインストールしていく

Installing the SDK

Flutterで使うので、FlutterSDKを見ながら。

Requirements

利用要件はこんな感じらしい

Xcode 13.3.1+ Minimum target: iOS 11.0+

Installation

Flutter版SDKはこれ。リポジトリも公開されてる

$ fvm flutter pub add purchases_flutter

iOS Deployment Target

iOS 11.0+なので、必要に応じて、
ios/Podfileを編集する。

# ios/Podfile
platform :ios, '11.0'

iOS Swift Version

Swift >= 5.0が必要。必要に応じて、
XcodeのSwift Language Versionになってるか確認する。

Import Purchases

dartでのimport文はこんな感じ。

import 'package:purchases_flutter/purchases_flutter.dart';

XcodeでIn-App Purchase(アプリ内課金)の機能を使うので、
「Project Target → Capabilities」で「In-App Purchase」をONにしておく。

Configuring the SDK

Basic Configuration

SDKを利用する前に初期化する必要がある。
dartの場合はこんな感じ。

import 'dart:io' show Platform;
import 'package:purchases_flutter/purchases_flutter.dart';

Future<void> initPlatformState() async {
  // デバッグログの有効化
  await Purchases.setLogLevel(LogLevel.verbose);
  
  // public API keyを使ったconfigの取得
  PurchasesConfiguration configuration;
  if (Platform.isAndroid) {
    configuration = PurchasesConfiguration(<public_google_api_key>);
  } else if (Platform.isIOS) {
    configuration = PurchasesConfiguration(<public_apple_api_key>);
  }
  
  // configを設定
  await Purchases.configure(configuration);
}

API Keyは、RevenueCat管理画面上の
Project Settings > API keys > App specific keysか、
対象のAppのPublic API Key欄から。

Additional Configuration Options

追加で、以下の設定もできるよう。

  • App User ID
    • RevenueCatのユーザID/顧客ID
    • 未設定の場合は匿名ID(anonymous Id)を自動生成
    • 詳しくは、Identifying Customers
  • Observer Mode
    • 既存のサブスクからRevenueCatに移行するときに利用
    • 詳しくは、Observer Mode
  • User Defaults (iOS only)

Advanced Configuration

iOS/Android側のオプションの追加設定。
Swift/Javaなどのネイティブ側での設定。

  • iOS/Delegates
    • purchases:receivedUpdated
      • 購入時にCustomerInfoの更新を受け取る
    • purchases:readyForPromotedProduct
      • ユーザがアプリ内課金を開始したときに呼ばれる
  • Android/Listeners
    • UpdatedCustomerInfoListener
      • 購入時にCustomerInfoの更新を受け取る

以上! とりあえず、SDKのインストールと初期化まで。
次はAppUserIDの設定周り(*´ω`*)