XCode 16.2 日本語化計画
開発全体を通してあなたのコードをテストして、アプリ内購入の実装を検証します。
Apple サンドボックスと Xcode テスト環境を使用して、StoreKit フレームワークを使用したアプリ内購入のあなたの実装をテストします。包括的なテストにより、以下のことが可能になります。
初期開発からベータテストまで、アプリ内購入、非更新サブスクリプション、自動更新サブスクリプションをテストするために必要なツールは以下のとおりです。
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の設定の管理) を参照してください。
アプリ内購入を提供するすべてのアプリは、購入の復元、顧客へのアプリ内購入の表示、基本的な取引の処理をサポートする必要があります。以下の表は、一般的なテストシナリオと、それらがサンドボックスまたは Xcode でテスト可能かどうかを示しています。
テストシナリオ | サンドボックス | Xcode での StoreKit テスト |
購入を復元 | はい | はい |
finish() または finishTransaction(_:)   廃止   で取引を終了 | はい | はい |
消耗品または非消耗品をアプリ内購入で購入 | はい | はい |
繰り返しテストするために非消耗品の購入を再購入 | はい | はい |
自動更新サブスクリプションを購入 | はい | はい |
非更新サブスクリプションを購入 | はい | はい |
アプリ内購入を払い戻す | はい | はい |
中断された購入をテスト。この場合、ユーザはアプリ外でアクションを完了する必要があります | はい | はい |
支払い承認が失敗した場合に、購入試行が失敗することをテスト | はい | はい |
App Store Connect から構成されたアプリ内購入を取得 | はい | はい (オプション)。StoreKit 構成ファイルからデータを取得することも可能 |
showManageSubscriptions(in:) と manageSubscriptionsSheet(isPresented:) であなたのアプリ内でサブスクリプションを管理 | はい | はい |
払い戻しリクエストを開始。詳細については、払い戻し要求のテスト をご覧ください。 | はい | はい |
あなたのアプリが提供するアプリ内購入に応じて、自動更新サブスクリプション、照会オファー、販売促進オファー、Ask to Buy などのシナリオをテストする必要があるかもしれません。以下の表に、テストシナリオと、それらがサンドボックスまたは Xcode でテスト可能かどうかを示します。
テストシナリオ | サンドボックス | Xcode での StoreKit テスト |
延期状態になる Ask to Buy 取引を開始 | はい | はい |
Ask to Buy 取引を承認または拒否して解決 | いいえ | はい |
自動更新サブスクリプションのお試しオファーを利用 | はい | はい |
自動更新サブスクリプションの販売促進オファーを利用 | はい | はい |
自動更新サブスクリプションのオファーコードを利用 | いいえ | はい |
サブスクリプションの更新を処理 | はい | はい |
取り消されたか返金されたサブスクリプションを処理 | はい | はい |
サブスクリプションをキャンセルし、自動更新を無効にする顧客に対応 | はい | はい |
期限切れのサブスクリプションに対応 | はい | はい |
サブスクリプションのアップグレードまたはダウングレードを処理 | はい | はい |
同じまたは異なる期間のサブスクリプションのクロスグレードを処理 | はい | はい |
自動更新サブスクリプションの価格引き上げをテスト | いいえ | はい |
課金の再試行と課金猶予期間をテスト | はい | はい |
サンドボックス環境で実際の製品情報とサーバ間取引を使用して、アプリ内購入の実装をテストします。
アプリの払い戻し要求の実装と、承認された払い戻しと拒否された払い戻しのあなたのアプリとサーバによる処理をテストします。
テスト環境用にあなたが構成した再獲得提供のアプリによる処理を検証します。