記事


サンドボックスでアプリ内購入をテストする


サンドボックス環境で実際の製品情報とサーバ間取引を使用して、アプリ内購入の実装をテストします。





概観


Apple サンドボックス環境を使用して、App Store Connect からの実際の製品情報を持つデバイスで StoreKit フレームワークを使用するアプリ内購入の実装をテストします。サンドボックス Apple アカウントを使用して App Store にあなたがサインインすると、開発署名済みアプリはサンドボックス環境を使用します。あなたのアプリは Xcode からビルドして実行します。


注意

App Store Connect で製品メタデータにあなたが加えた変更はサンドボックス環境に反映されるまでに最大 1 時間かかる場合があります。

App Store Connect で Sandbox Apple アカウントを作成するには、Sandbox Apple Accountの作成 を参照してください。


Sandbox 環境で App Store サーバ通知を有効にするには、App Store サーバ通知の有効化 (Enabling App Store Server Notifications) を参照してください。あなたのアプリをテストすると、サーバはアプリ内購入取引の通知を受け取ります。通知ペイロードは、data オブジェクトの environment プロパティで Sandbox 環境を識別します。可能な通知の一覧については、notificationType を参照してください。



サンドボックステストの準備


サンドボックス環境でアプリ内購入のテストを開始する前に、以下の点を確認してください:


  1. Apple Developer Program アカウントがアクティブであること。詳細については、登録に必要なもの を参照してください。

  2. メンバーシップアカウント所有者が、契約書の署名と更新 で説明されているように、有料アプリケーション契約に署名していること。

  3. テストするアプリの製品情報を App Store Connect で設定します。少なくとも、製品参照名、製品 ID、ローカライズされた名前、価格を設定します。

  4. あなたのアプリの開発用署名済みビルドを実行しています。製品用署名済みビルドは、製品環境を使用します。

  5. iOS、watchOS、または visionOS デバイスでテストする場合は、ローカルにインストールされたアプリがデバイスで実行できるように許可します。詳細については、デバイス上で開発者モードを有効にする (Enabling Developer Mode on a device) を参照してください。

  6. 詳細については、App Store Connect のワークフロー および アプリ内課金の設定の概要 を参照してください。


    注意

    サンドボックス環境でアプリ内購入をテストする場合、あなたのアプリのバイナリを App Store Connect にアップロードする必要はありません。Xcode からあなたのアプリをビルドして実行します。


    サンドボックス Apple アカウントで App Store にサインイン


    サンドボックス Apple アカウントを使用してあなたのアプリを実行するには、Xcode からあなたのアプリをビルドして実行します。


    iOS および iPadOS では、開発署名されたアプリでデバイスを使用して初めて購入を試みた後、サンドボックスアカウントが [Setting(設定)] > [Developer(開発者)] に表示されます。サンドボックス以外の Apple アカウントからサインアウトする必要はありません。サンドボックス Apple アカウントを使用してサインインしてください。


    macOS では、デバイスを使用して初めてアプリ内購入を行うと、サンドボックスアカウントが App Store 設定に表示されます。[App Store] > [Setting(設定)] を開き、[Sign In(サインイン)] ボタンをクリックして、サンドボックス Apple アカウントを使用してサインインします。テストが完了したら、App Store Setting からサンドボックス Apple アカウントをサインアウトします。


    注意

    テストデバイスに macOS 11.1 以前がインストールされている場合は、Mac App Store からサインアウトし、Xcode であなたのアプリをビルドして Finder から起動します。


    アプリ内購入を行う


    開発署名済みアプリで初めて購入する場合は、あなたのサンドボックス Apple アカウントを使用して App Store にサインインし、テストを開始します。サインインすると、[Environment: Sandbox] (環境: サンドボックス) というテキストが表示され、テスト環境に接続したことが示されます。[Environment: Sandbox] が表示されない場合は、製品の環境を使用しています。



    すべての地域でアプリ内購入をテストする


    App Store Connect を通じて作成したアプリ内製品は、すべての App Store 地域で販売できます。特定の地域で利用できる製品 ID のリストを維持することもできます。同じ Sandbox Apple アカウントを使用して複数の地域でアプリ内購入をテストするには、App Store Connect を開き、Sandbox Apple アカウントをクリックして、App Store の国または地域の設定を変更します。詳細については、Sandbox Apple Accountの設定の管理 を参照してください。


    App Store Connect で地域を変更した後に storefront (店頭) を有効にするには、デバイス上の Sandbox Apple アカウントからサインアウトし、再度サインインします。テスターには、彼らの Sandbox Apple アカウントに割り当てられた地域に適したアプリ内購入が表示されます。App Store の国または地域の設定を変更すると、アプリの店頭の値に影響します。詳細については、Storefront および SKStorefront   廃止   を参照してください。



    サンドボックス Apple アカウントの購入履歴を消去する


    同じ Sandbox Apple アカウントを使用して繰り返したテストを管理しやすくするために、App Store Connect または iOS のアカウント設定から購入履歴を消去することができます。iOS デバイスで、以下の手順に従います。


    1. Setting (設定) を開いて Developer (開発者) を選択します。

    2. Sandbox Apple Account を選択します。

    3. ポップアップ シートで Manage (管理) を選択します。

    4. Account Setting (アカウント設定) ページで Clear Purchase History (購入履歴を消去) を選択します。

    App Store Connect から購入履歴を消去する方法については、Sandbox Apple Accountの設定の管理 を参照してください。


    購入回数が多い Sandbox Apple アカウントの購入履歴をクリアするには、時間がかかる場合があります。プロセスが完了すると、取引履歴は空になり、Sandbox Apple アカウントはお試しオファーの対象となります。Sandbox Apple アカウントでログインしたテスターは、重複購入をすることなく、以前にサブスクライブしていたサブスクリプションを購入できます。


    注意

    購入履歴を消去しても、顧客が App Store で行うアプリ内購入には影響しません。


    App Store Connect か iOS アカウント設定からサンドボックス設定を管理


    サンドボックス設定を使用すると、テスト環境を制御してあなたのテストを設定できます。設定は、App Store Connect または iOS アカウント設定の好みのどちらかで管理できます。どちらの方法を選択しても、設定はサンドボックスに同じように影響します。ただし、一部の設定は App Store Connect でのみ使用できます。以下の表は、両方のプラットフォームの設定を比較したものです。


    サンドボックスの設定または機能App Store Connect で
    利用可能
    iOS で
    利用可能
    サンドボックス Apple アカウントを作成または削除はいいいえ
    サンドボックステストファミリーを作成または削除はいいいえ
    サンドボックステストファミリーからメンバーを削除はいいいえ
    店頭の国または地域を変更はいいいえ
    サブスクリプションの更新頻度を変更はいはい
    中断された購入を有効にするはいはい
    サンドボックス Apple アカウントの購入履歴を消去はいはい
    サンドボックステストファミリーメンバーの共有ステータスを変更はいはい
    アプリで再獲得提供シートを表示するかどうかを選択いいえはい

    iOS のアカウント設定にアクセスするには、iOS デバイス上で以下の手順に従います。


    1. Setting (設定) を開いて、Developer (開発者) を選択します。

    2. サンドボックス Apple アカウントを選択します。

    3. ポップアップシートで、Manage (管理) を選択します。アカウント設定ページが表示されます。

    App Store Connect でのサンドボックス設定の管理に関するすべての側面については、Sandbox でのテストの概要 を参照してください。





    トピックス


    製品 ID と要求


    製品 ID の取得のテスト

    あなたのアプリの ID 取得プロセスを検査または複製して、アプリが正しい製品 ID を受け取っていることを確認します。


    無効な製品 ID の処理をテストする

    あなたのアプリが無効な製品 ID を正しく処理していることを確認します。


    製品リクエストのテスト

    App Store の応答を検査して、サンドボックス環境で製品のリクエストが適切に機能することを確認します。



    支払い取引


    アプリ外での購入をテストする

    サブスクリプションの購入、更新、オファーや販売促進コードの引き換えなど、アプリ外で発生する取引をあなたのアプリが受信して処理していることを確認します。


    サンドボックス環境での再獲得提供のテスト

    あなたのアプリ外で行われたものも含め、あなたのアプリが再獲得提供取引を受信して処理していることを確認します。


    中断された購入のテスト

    支払い取引を検査して呼び出すことで、あなたのアプリが中断された購入を処理することを確認します。


    サブスクリプションの更新とアプリ内購入の失敗をテストする

    課金の再試行または課金の猶予期間の状態にある、失敗したサブスクリプションの更新、および失敗したアプリ内購入をあなたのアプリが処理できることを確認します。


    支払い要求のテスト

    支払い取引監視者への呼び出しを検査して、サンドボックス環境での支払い要求が適切に機能することを確認します。



    サブスクリプション


    自動更新サブスクリプションのテスト

    サンドボックス環境内の加速時間率を使用して、あなたのアプリがサブスクリプションの失効を適切に処理していることを確認します。


    サブスクリプションページから再サブスクリプションのテスト

    取引のコールバックを受信するか、更新されたレシートを検査して、あなたのアプリが期限切れのサブスクリプションを再度アクティブ化できることを確認します。


    自動更新を無効にするテスト

    ユーザがサブスクリプションをキャンセルしたときに、レシートを確認するか通知を受信して、あなたのアプリがサブスクリプションの更新を受信することを確認します。



    家族間共有


    家族間共有のテスト

    家族のメンバーが家族間共有で共有する自動更新サブスクリプションと非消費型アプリ内購入をあなたのアプリが処理できることを確認します。



    払い戻し


    払い戻し要求のテスト

    アプリの払い戻し要求の実装と、承認された払い戻しと拒否された払い戻しのあなたのアプリとサーバによる処理をテストします。



    サーバの通知


    App Store サーバ通知のテスト

    サンドボックス環境で App Store サーバ通知サービスが適切に応答することを確認します。



    取引監視者


    取引監視者コードのテスト

    ブレークポイントを使用して、あなたのアプリが支払い取引監視者をアクティブにすることを確認します。


    成功した取引のテスト

    取引を検査して、あなたのアプリがサンドボックス環境で取引を正常に実行できることを確認します。


    取引完了のテスト

    ダウンロード可能な購入があなたのテストデバイスに存在することを確認して、アプリが取引を適切に完了することを確認します。





    以下も見よ


    アプリ内購入のテスト


    Xcode とサンドボックスを使用した開発のすべての段階でのテスト

    開発全体を通してあなたのコードをテストして、アプリ内購入の実装を検証します。


    払い戻し要求のテスト

    アプリの払い戻し要求の実装と、承認された払い戻しと拒否された払い戻しのあなたのアプリとサーバによる処理をテストします。


    Xcode で再獲得提供をテスト

    テスト環境用にあなたが構成した再獲得提供のアプリによる処理を検証します。

















    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ