App Testerの使用
App Testerは、アプリをAmazonアプリストアに公開する前に、Amazonアプリ内課金(IAP)の機能をテストすることができるツールです。App Testerツールをダウンロードしてインストールし、設定を完了したら、IAP機能のテストを開始できます。
notifyFulfillment()呼び出しによってFULFILLEDまたはUNAVAILABLEとしてマークされるまで、追加のアプリ内購入を行うことはできなくなります。このロジックにより、IAP SDKを介した購入処理が正しく実装されているかどうかを確認できます。このロジックはApp Testerにのみ適用され、本番環境での動作には適用されません。まだApp Testerをアプリ用にセットアップしていない場合は、App Testerをインストールして構成する方法を参照してください。
Amazon App Testerは、Amazonアプリストアでの認証をシミュレートするためのツールです(以前はIAPでのみ使用されていました)。App Testerはこちらからダウンロードできます。
App Testerの使用手順
Amazon App Testerを使用してアプリを検証するには、以下の手順を実行します。
- manifest.tomlに以下の構成が追加されていることを確認します。
[wants]// ... other wants [[wants.service]]id = "com.amazon.iap.tester.service" -
コンピューターをVDA経由でFire TVに接続します。VDAの詳細を参照してください。
- 次の手順でアプリをサンドボックスモードに設定します。
- JSONファイルを作成し、amazon.config.jsonという名前を付けます。JSONファイルの内容は次のようになります。
{ "debug.amazon.sandboxmode": "debug" }これは、IAPテスターに提供されるJSONファイルとは異なります。
- Vega仮想デバイス(VVD)内またはデバイス上に
/tmp/scratch/<アプリID>というディレクトリを作成します。 - JSONファイルを先ほど作成した場所にプッシュします。デバイスにプッシュするには、デバイスでのApp Testerのインストールを参照してください。VVDにプッシュするには、VVDにApp Testerをインストールする方法を参照してください。
- アプリを再起動(終了してから再び起動)して、変更を適用します。
-
サンドボックスモードを無効にするには、JSONファイル内の値を
debugからprodに変更するか、JSONファイルを削除します。注: JSONファイルを変更したら、そのつどアプリを再起動(終了してから起動)する必要があります。そうしないと変更が適用されません。
サンドボックスモードでは、通常であればAmazonアプリストアクライアントに向かう呼び出しを、強制的にAmazon App Testerアプリへとルーティングします。このモードは、ローカルでのテストにのみ使用します。
- Amazon App Testerの既存バージョンをアンインストールしてから、最新バージョンをダウンロードし、Fireデバイスで開きます。
VVDにApp Testerをインストールする方法
VVDにApp Testerをインストールするには、次のコマンドを使用します。
vpm install <アプリ名.vpkg>
VVDからApp Testerをアンインストールするには、次のコマンドを使用します。
vpm uninstall <パッケージID>
IAP APIの選択
App Testerアプリを初めて起動すると、次のスプラッシュ画面が表示されます。

Appstore SDK API’sというプロンプトをタップして開始します。
IAP APIのナビゲーションオプションが表示されます。
- User Account Settings: アプリのテストユーザーアカウントを構成します。
- Subscription Purchase Settings: 定期購入型アイテムの購入設定を使用して、RVS Sandboxのレスポンスをテストします。
- IAP API Response Settings: テストケースの条件やレスポンスを構成します。
- Manage Transactions: アプリのアクティブなIAPトランザクションを管理します。
- Notification Settings: 通知ドロワーに追加される通知を有効または無効にします。
- IAP Items in JSON File: JSONファイルからApp Testerに追加されたデータを、人間が簡単に判読できる形式で表示します。
ユーザーの管理
ユーザーのログインとログアウト、ユーザーの変更、ユーザーに関連付けられているマーケットプレイスの変更を行うことができます。これらのオプションを設定すると、ユーザーやマーケットプレイスをさまざまに変えて、条件の異なるシナリオを簡単にテストできます。
ユーザー管理画面にアクセスするには、App TesterのランディングページからIAP APIを選択し、[User Account Settings] をタップします。

ログインとログアウトの切り替え
現在のユーザーのログインとログアウトを切り替えるには、[Status] の [Logged in] または [Logged Out] オプションをタップします。
現在のユーザーの変更
App Testerには、3つのテストユーザーアカウントが用意されています。テストユーザーには、Amazon User 1、Amazon User 2、Amazon User 3という名前が付いています。
ユーザーを変更するには、[Amazon User Id] で、テストに使用するユーザーIDを選択します。
現在のユーザーのマーケットプレイスを変更する方法
App Testerでは、世界中のさまざまなマーケットでアプリをテストできます。現在のユーザーに関連付けられているマーケットプレイスを変更するには、[User Marketplace] で新しいマーケットを選択します。以下のマーケットを使用できます。
- US: 米国
- CA: カナダ
- BR: ブラジル
- MX: メキシコ
- GB: 英国
- DE: ドイツ
- ES: スペイン
- FR: フランス
- IT: イタリア
- IN: インド
- JP: 日本
- AU: オーストラリア
ユーザープロフィールへのアクセスの同意ステータスを変更する方法
App Testerには、同意ステータスについて UNAVAILABLEとCONSENTEDという2つのオプションがあります。同意ステータスを変更するには、ユーザープロフィールへのアクセスの同意ステータスを確認し、テストに使用するステータスを選択します。
定期購入型アイテムの設定
定期購入型アイテムの購入設定を使用して、RVS Sandboxのレスポンスをテストします。

APIレスポンスの設定
IAP APIのテスト呼び出しの条件やレスポンスを設定するには、[IAP API Response Settings] タブを使用します。

レスポンスとして [Default] を選択すると、既存のデフォルト設定が使用されます。「Default」という設定自体が存在するわけではないことに注意してください。SUCCESSFULやFAILEDなどの値を明示的に選択した場合は、その値がApp Testerから返されます。たとえば、getProductDataは、リクエストされたSKUがJSONファイルに含まれているとSUCCESSFULを返します。GetUserDataは、[User Account Settings] でユーザーが [Logged Out] に設定されているとFAILEDを返します。
各IAP APIで選択できるレスポンスは次のとおりです。
| API名 | 選択できるレスポンス |
|---|---|
GetProductData |
Default、SUCCESSFUL、FAILED |
GetPurchaseUpdates |
Default、SUCCESSFUL、FAILED |
GetUserData |
Default、SUCCESSFUL、FAILED |
Purchase |
Default、SUCCESSFUL、FAILED、ALREADY_PURCHASED、INVALID_SKU |
modifySubscription |
Default、SUCCESSFUL、FAILED、INVALID_REQUEST、INVALID_SKU |
UserProfileAccess |
Default、SUCCESSFUL、FAILED |
トランザクションの管理
現在のユーザーの購入トランザクションの表示、キャンセル、削除を行うには、[Manage Transactions] タブを使用します。トランザクションのキャンセルと削除は、非消費型アイテムや定期購入型アイテムをテストするときに役立ちます。このタブには、現在のユーザーのすべてのトランザクションが表示されます。

[Manage Transactions] タブには、トランザクションごとに次の情報が表示されます。
- RECEIPT: 購入された商品の種類。IAPで有効な値は、CONSUMABLE、ENTITLEMENT、SUBSCRIPTIONです。
- RECEIPT ID: トランザクションの一意の識別子。
- SOLD BY: アイテムを販売したアプリ。
- PURCHASED ON: アイテムが購入された日付。
- STATUS: トランザクションのステータス。有効な値は、PURCHASEDまたはCANCELEDです。これらのApp Testerの値はそれぞれ、IAP APIの値FULFILLEDとUNAVAILABLEに対応しています。
アプリがPurchasingService.notifyFulfillment({receiptId: receipt.receiptId, fulfillmentResult: FulfillmentResult.FULFILLED})を呼び出すと、[Manage Transaction] セクションにレシートが FULFILLEDというステータスで表示されます。
[Manage Transactions] タブでは、以下を実行できます。
- 現在のユーザーのトランザクションの一覧を最新の状態に更新する。
- 現在のユーザーのトランザクションをすべて削除する。
- 個々のトランザクションをキャンセルする。
- 個々のトランザクションを削除する。
通知の有効化または無効化
[Notification Settings] タブを使用すると、システムの通知ドロワーに追加される通知を簡単に有効または無効にすることができます。
次の図は [Notification Settings] タブを示しています。

次の通知を設定できます。
-
[Purchase Updates Notifications]: デフォルトでは、アプリが購入ダイアログを読み込んだ後、
getPurchaseUpdates()を呼び出さなかった場合に、Amazonから通知が送信されます。 アプリでgetPurchaseUpdates()を1回呼び出すと、この通知は送信されなくなります。この通知のオンとオフは、[Purchase Updates Notifications] の設定で切り替えることができます。 -
[Notify Fulfillment Notifications]: デフォルトでは、ユーザーが購入を行った後、30秒以内にアイテムが付与されなかった場合に、Amazonから通知が送信されます。この通知のオンとオフは、[Notify Fulfillment Notifications] で切り替えることができます。
-
[Reset Purchase Updates]:
getPurchaseUpdates()が呼び出されたかどうかを示す状態をリセットします。
JSONファイル内のIAPアイテムの確認
[IAP Items in JSON File] タブをタップすると、App Testerをインストールして構成する方法で構成したJSONファイル内のIAPアイテムを簡単に確認できます。有効なJSONファイルが正しく追加されていれば、App Testerによってファイルの内容が解析され、このタブに表示されます。

有効なJSONファイルが正しく追加されていない場合、このタブには、エラーメッセージまたはJSONファイルが存在しないという通知が表示されます。
ユーザーエクスペリエンスのシミュレーション
App Testerでは、APIリクエストに対してレスポンスを返すだけでなく、公開されたライブ状態のアプリと同じように購入フローダイアログを表示することもできます。これらのダイアログは、アプリの購入プロセスのユーザーエクスペリエンスを評価するために役立ちます。
App Testerは、購入リクエストごとに2つのインタースティシャルダイアログを表示します。1つ目は詳細画面で、購入価格などの詳細情報が表示されます。次のIAPの例を参照してください。
アプリ内課金の例は次のとおりです。

2番目のダイアログは、購入者へのお礼を表示する画面です。このページは、ユーザーが右上隅の [X] ボタンをタップして手動で閉じる必要があります。次のIAPの例を参照してください。

IAPテスターのログ
IAPテスターのログに関する詳細は次のとおりです。
- 詳細については、アプリのデバッグを参照してください。
- IAPテスターのログを取得するには、 「AmazonIAPTester」というキーワードをgrep検索します。
grep "AmazonIAPTester" -rn .
Last updated: 2025年10月1日

