記事


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


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





概観


Apple サンドボックスと Xcode テスト環境を使用して、StoreKit フレームワークを使用したアプリ内購入のあなたの実装をテストします。包括的なテストにより、以下のことが可能になります。


  • あなたのアプリでポジティブな顧客体験を提供するために、シームレスな購入フローを確保します。

  • 購入、復元、サブスクリプションオファーなど、すべてのシナリオをカバーする適切なロジックを実装します。

  • あなたのアプリが App Store で利用可能になった後、製品で購入が正しく動作することを確認します。

  • 初期開発からベータテストまで、アプリ内購入、非更新サブスクリプション、自動更新サブスクリプションをテストするために必要なツールは以下のとおりです。


    Xcode での StoreKit テスト

    早期開発、継続的統合、デバッグ。詳細については、StoreKit テスト を参照してください。


    サンドボックス

    App Store Connect で設定したアプリ内購入データを使用してシナリオをテストする場合。詳細については、サンドボックスでアプリ内購入をテストする を参照してください。


    TestFlight

    社内および社外のテスターによるベータテストの管理用。TestFlight では、App Store Connect にアップロードしたあなたのアプリまたは App Clip のベータビルドを使用します。詳細については、TestFlightでベータ版テストが簡単に を参照してください。


    必要なテストシナリオをサポートするツールを選択します。あなたが選択したツールに必要なセットアップを実行できることを確認してください。


    開発の初期段階では、App Store Connect でアプリ内購入を構成する準備があなたにできていないかもしれません。Xcode の StoreKit テストを使用すると、ローカルで情報を構成できます。ネットワーク接続なしで、Sandbox Apple ID を作成する前に StoreKit 取引をテストできます。シミュレータまたは実際のデバイスでアプリをテストできます。


    App Store Connect でアプリ内購入を設定したら、サンドボックス環境を使用して、あなたのアプリが使用する製品情報をテストします。サンドボックスでテストすると、エンドツーエンドの取引やあなたのアプリからサーバへの取引をテストできます。また、取引の検証や App Store サーバ通知 など、アプリが依存するサーバ間機能もテストできます。


    TestFlight を使用すると、あなたのチームのメンバーや外部のテスターからフィードバックを得ることができます。TestFlight は、アプリ内購入にサンドボックス環境を使用します。サンドボックスで発生する取引や購入には料金はかかりません。以下の表は、テスト環境と機能を比較したものです。


    テスト環境App Store Connect の設定が必要App Store によって署名された領収書と JSON Web Signature (JWS) 取引を提供App Store によって署名されたサブスクリプション更新情報を提供
    Xcode での StoreKit テストいいえいいえ (Xcode によって署名済)いいえ (Xcode によって署名済)
    サンドボックスはいはいはい
    TestFlight (サンドボックス使用)はいはいはい

    どのテスト環境でも、ユーザが製品を購入するテストを行う際に料金を請求することはありません。また、テスト環境で行われた購入や払い戻しに関して、App Store から電子メールが送信されることはありません。



    テスト環境の制御


    テストシナリオを設定して実行するには、多くの場合、テスト環境をあなたが制御する必要があります。たとえば、テストアカウントをリセットして同じテストを複数回再実行したり、あなたのアプリ外でユーザが実行してテスト条件に影響を与えるアクションを模倣したりする場合があります。以下の表は、各ツールがテスト環境を制御しなければならない機能を示しています。


    テストシナリオサンドボックスXcode での StoreKit テスト
    さまざまな店頭をテストして、価格帯とロケールに影響を及ぼすはい制限あり (価格帯なし)
    購入履歴を消去はいはい
    サブスクリプションのアップグレード、ダウングレード、クロスグレード、自動更新のキャンセルをテストはいはい
    照会特典の資格をリセットはいはい
    テスト用に強制 StoreKit エラーを導入いいえはい
    サブスクリプション更新のテスト用の時間を早めるか遅くするはいはい

    テスト用に更新期間を短縮する方法の詳細については、アプリ内購入のテスト (Sandbox Apple Accountの設定の管理) を参照してください。



    一般的 StoreKit シナリオをテスト


    アプリ内購入を提供するすべてのアプリは、購入の復元、顧客へのアプリ内購入の表示、基本的な取引の処理をサポートする必要があります。以下の表は、一般的なテストシナリオと、それらがサンドボックスまたは Xcode でテスト可能かどうかを示しています。


    テストシナリオサンドボックスXcode での StoreKit テスト
    購入を復元はいはい
    finish() または
    finishTransaction(_:)   廃止   で取引を終了
    はいはい
    消耗品または非消耗品をアプリ内購入で購入はいはい
    繰り返しテストするために非消耗品の購入を再購入はいはい
    自動更新サブスクリプションを購入はいはい
    非更新サブスクリプションを購入はいはい
    アプリ内購入を払い戻すはいはい
    中断された購入をテスト。この場合、ユーザはアプリ外でアクションを完了する必要がありますはいはい
    支払い承認が失敗した場合に、購入試行が失敗することをテストはいはい
    App Store Connect から構成されたアプリ内購入を取得はいはい (オプション)。StoreKit 構成ファイルからデータを取得することも可能
    showManageSubscriptions(in:)manageSubscriptionsSheet(isPresented:) であなたのアプリ内でサブスクリプションを管理はいはい
    払い戻しリクエストを開始。詳細については、払い戻し要求のテスト をご覧ください。はいはい

    サブスクリプションのテストと Ask to Buy


    あなたのアプリが提供するアプリ内購入に応じて、自動更新サブスクリプション、照会オファー、販売促進オファー、Ask to Buy などのシナリオをテストする必要があるかもしれません。以下の表に、テストシナリオと、それらがサンドボックスまたは Xcode でテスト可能かどうかを示します。


    テストシナリオサンドボックスXcode での StoreKit テスト
    延期状態になる Ask to Buy 取引を開始はいはい
    Ask to Buy 取引を承認または拒否して解決いいえはい
    自動更新サブスクリプションのお試しオファーを利用はいはい
    自動更新サブスクリプションの販売促進オファーを利用はいはい
    自動更新サブスクリプションのオファーコードを利用いいえはい
    サブスクリプションの更新を処理はいはい
    取り消されたか返金されたサブスクリプションを処理はいはい
    サブスクリプションをキャンセルし、自動更新を無効にする顧客に対応はいはい
    期限切れのサブスクリプションに対応はいはい
    サブスクリプションのアップグレードまたはダウングレードを処理はいはい
    同じまたは異なる期間のサブスクリプションのクロスグレードを処理はいはい
    自動更新サブスクリプションの価格引き上げをテストいいえはい
    課金の再試行と課金猶予期間をテストはいはい

    詳細については、Ask to Buy を使用してお子様が購入するのを承認 (Approve what kids buy with Ask to Buy) および お試しオファーをテスト (Testing introductory offers) を参照してください。





    アプリ内購入のテスト


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

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


    払い戻し要求のテスト

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


    Xcode で再獲得提供をテスト

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

















    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ