アプリ内課金のテスト(オプション)

7 min

本番環境にアプリをリリースする前に、完全な購入フローをテストしたいでしょう。アプリ内課金のテストには2つのアプローチがあります:サンドボックスアカウントの設定なしで高速かつ決定的なテストができるRevenueCat Test Storeと、Appleのインフラを使ったエンドツーエンドテストのためのApple サンドボックステストです。

RevenueCat Test Store

Test Storeは、App Storeに接続せずにアプリ内課金フローをテストできるRevenueCatの組み込みテスト環境です。すべてのRevenueCatプロジェクトに自動的にプロビジョニングされ、購入結果を完全にコントロールできます。

Test Storeの主なメリット:

  • 決定的な結果:購入の成功、失敗、キャンセルをコントロールできます。サンドボックスの不安定な動作から解放されます。
  • サンドボックスアカウント不要:Apple サンドボックステスターアカウントの作成・管理の手間を省けます。
  • 高速なフィードバック:購入フローを数分ではなく数秒でテストできます。
  • CI/CDで動作:あらゆる環境で安定して実行できる購入ロジックの自動テストを作成できます。

Test Storeを始めるには、RevenueCatダッシュボードにアクセスし、Apps & providersからTest Storeを有効にしてください。開発・テスト時に本番用APIキーの代わりに使用できる、test_プレフィックス付きのTest Store APIキーが発行されます。

📘 ヒント: 自動テストやCI/CD統合を含むTest Storeの設定と使用に関する包括的なガイドは、専用のTest Storeコードラボをご覧ください。

Apple サンドボックステスト

Appleは実際のお金を請求せずにApp Storeをシミュレートするサンドボックス環境を提供しています。このセクションでは、Appleのサンドボックスを使ったテスト購入の方法を説明します。

サンドボックス環境について

サンドボックスはAppleのアプリ内課金テスト環境です。主な特徴:

  • 実際の請求なし: すべてのトランザクションはシミュレーションです。
  • 加速された更新: サブスクリプションはテスト用に高速で更新されます(下の表を参照)。
  • 本番環境とは分離: サンドボックス購入は実際のApp Storeデータに影響しません。
  • サンドボックスApple IDが必要: 通常のApple IDは使用できません。

サンドボックスサブスクリプション更新スケジュール

サンドボックスでは、迅速なテストのためにサブスクリプションがはるかに高速に更新されます:

本番環境の期間サンドボックスの期間
1週間3分
1ヵ月5分
2ヵ月10分
3ヵ月15分
6ヵ月30分
1年1時間
📘 注意: サンドボックスサブスクリプションは自動的に最大6回(週次/月次の場合)または12回(長期間の場合)更新され、その後有効期限が切れます。

1. サンドボックステスターアカウントの作成

購入をテストするには、専用のサンドボックスApple IDが必要です。これは通常のApple IDとは別のものです。

  1. App Store Connectに移動します。
  2. 上部ナビゲーションのユーザーとアクセスをクリックします。
  3. Sandboxタブを選択します。
  4. +ボタンをクリックして新しいテスターを追加します。
  5. 必要な情報を入力します:
    • 名 / 姓:任意の値で構いません(例:「Test User」)。
    • メール:アクセスできる実在のメールである必要がありますが、既存のApple IDにはできません。
    • パスワード:このテストアカウント用のパスワードを作成します。
    • 秘密の質問/答え:アカウント復旧用です。
    • 地域:国を選択します(通貨と価格に影響します)。
  6. 作成をクリックします。
⚠️ 重要: 使用するメールは、すでにApple IDに関連付けられているものは使えません。メールプロバイダーが対応している場合は、メールエイリアス(例:yourname+sandbox1@gmail.com)の利用を検討してください。

2. テストデバイスの設定

iOSデバイスでサンドボックスアカウントを使用するには:

オプションA:iOS 14以降(推奨)

  1. デバイスで設定を開きます。
  2. App Storeに移動します。
  3. サンドボックスアカウントセクションまでスクロールします。
  4. サインインをタップし、サンドボックステスターの認証情報を入力します。

これにより、通常のApple IDをサインインしたままにしつつ、購入テストにはサンドボックスアカウントを使用できます。

オプションB:iOS 13以前

  1. 設定 > iTunes StoreとApp Storeを開きます。
  2. 通常のApple IDからサインアウトします。
  3. アプリでの購入時にプロンプトが表示されたら、サンドボックスアカウントでサインインします。
📘 ヒント: iOS 14以降では、通常のApple ID(App Store用)とサンドボックスアカウント(テスト用)の両方を同時にサインインしておけます。

3. テスト購入の実行

サンドボックスアカウントを設定したら、完全な購入フローをテストできます:

  1. アプリをビルドして実行します。実機で行ってください(サンドボックスはシミュレータでは安定して動作しません)。
  2. ペイウォールに移動し、購入する商品を選択します。
  3. 購入を完了します。確認ダイアログに「[Environment: Sandbox]」と表示されます。
  4. RevenueCatで確認します。RevenueCatダッシュボードで顧客のプロフィールを確認し、購入が記録されたことを確かめます。

テストする項目

  • 初回購入:サブスクリプションまたは都度購入を完了します。
  • 購入の復元:サインアウトして再度サインインし、復元します。
  • サブスクリプションの更新:自動更新を待ちます(サンドボックスのタイミングに基づきます)。
  • キャンセル:設定からキャンセルし、Entitlementが削除されることを確認します。
  • アップグレード/ダウングレード:サブスクリプションのティア間を切り替えます。

4. RevenueCatダッシュボードで確認

テスト購入を行った後、RevenueCatに正しく表示されるか確認します:

  1. RevenueCatダッシュボードに移動します。
  2. 左サイドバーのCustomersに移動します。
  3. テストユーザーを検索します(App User ID、または設定していればメールで)。
  4. 次を確認します:
    • 購入がトランザクション履歴に表示される
    • 正しいEntitlementが有効になっている
    • 商品とOfferingの情報が正確である
📘 サンドボックスと本番環境: RevenueCatダッシュボードでは、サンドボックスのトランザクションに明確にラベルが付きます。サンドボックスのみ、または本番環境のみのトランザクションを絞り込んで表示できます。

5. TestFlightでのテスト(オプション)

外部テスターを使ったより現実的なテストには、TestFlightを利用できます:

  • 内部テスター:自動的にサンドボックス環境を使用します。
  • 外部テスター:こちらもサンドボックス環境を使用します。
  • TestFlightビルドは購入にサンドボックスを使用し、実際のお金を請求することはありません

これにより、実際のトランザクションを心配することなく、ベータテスターからフィードバックを得られます。

よくあるサンドボックスの問題

問題解決策
購入ダイアログが表示されないシミュレータではなく実機で行っているか確認します
「App Storeに接続できません」ネットワーク接続を確認します。サインアウトして再度サインインしてみます
購入がRevenueCatに表示されないBundle IDが一致しているか確認します。認証情報が設定されているか確認します
通常のApple IDのパスワードを求められるサンドボックスアカウントが設定で構成されているか確認します(iOS 14以降)
「このApple IDはまだ使用されていません」初回購入では正常です。プロンプトに従って規約に同意してください

テスト購入を無事に完了し、RevenueCatで確認できたら、自信を持ってアプリをリリースする準備が整いました! 🚀