開発者コンソール

App Testerユーザーガイド

App Testerユーザーガイド

App Testerを使用すると、アプリをAmazonアプリストアで公開する前に、Amazonアプリ内課金(IAP)の機能をテストできます。App Testerツールのダウンロード、インストール、設定を完了した後、IAP機能のテストを開始できます。

App Testerがアプリ用にセットアップされていない場合は、App Testerをインストールして構成する方法を参照してください。

App Testerの使用

Amazon App Testerは、Amazonアプリストアでの認可をシミュレートするためのツールです(以前はIAPでのみ使用)。App Testerは、Amazon App Testerの販売ページまたはAmazonアプリストアからテストデバイスにダウンロードできます。

Amazon App Testerを使用してアプリのライセンス検証をテストするには、次の手順を実行します。

  1. ADBを使用して、コンピューターをFire TVまたはFireタブレットに接続します。詳細については、次のどちらかを参照してください。

  2. 次のコマンドを使用して、アプリをサンドボックスモードに設定します。

    adb shell setprop debug.amazon.sandboxmode debug
    

    サンドボックスモードでは、通常であればAmazonアプリストアクライアントに向かう呼び出しを、強制的にAmazon App Testerアプリへとルーティングします。このモードは、ローカルでのテストにのみ使用します。

  3. Amazon App Testerの既存のバージョンをアンインストールしてから、Fireデバイスで最新バージョンをダウンロードして開きます。
  4. Amazon App Testerを開き、[Appstore SDK APIs] > [DRM API Response Settings] > [GetLicense API] の順に選択します。いくつかのライセンスオプションを設定できます。

    GetLicense APIのオプションには、[Default]、[LICENSED]、[NOT_LICENSED]、[ERROR_VERIFICATION]、[ERROR_INVALID_LICENSING_KEYS]、[EXPIRED]、[UNKNOWN_ERROR] があります。
    App Testerの [DRM API Response Settings]
  5. DRMを含むFire TVアプリまたはFireタブレットアプリを実行します。Amazon App Testerは、選択された内容に基づいて、ユーザーのライセンスステータスに関するレスポンスをシミュレートします。

    サンドボックスモードを終了するには、以下を実行します。

    adb shell setprop debug.amazon.sandboxmode none
    

Appstore SDK APIの選択

App Testerを初めて起動すると、ランディングページでAppstore SDK APIを選択するように求められます。

Appstore SDK API。アプリ内課金(IAP)およびデジタル著作権管理API用のApp Testerプラグインモジュールです。

[Appstore SDK APIs] というプロンプトをタップして開始します。 

使用できるオプションのリスト。説明については、以下の番号付きリストを参照してください。

App Testerに、Appstore SDK APIのナビゲーションオプションのリストが表示されます。

  1. User Account Settings: アプリのテストユーザーアカウントを構成します。
  2. Subscription Purchase Settings: 自動更新や無料体験など、定期購入テストケースの条件を設定します。
  3. IAP API Response Settings: テストケースの条件やレスポンスを設定します。
  4. DRM API Response Settings: DRMテストケースのライセンスレスポンスを設定します。
  5. Simple Sign-In API Response Settings: シンプルサインインテストケースの条件を設定します。詳細なテスト手順については、シンプルサインインのドキュメントのApp Testerを使用してアプリをテストする方法を参照してください。
  6. Manage Sign-In links: シンプルサインインにリンクされているアカウントをクリアして、テスト条件をリセットします。詳細については、リンク済みアカウントの管理を参照してください。
  7. Notification Settings: 通知ドロワーに追加される通知を有効または無効にします。
  8. Manage Transactions: アプリのアクティブなIAPトランザクションを管理します。
  9. IAP Items in JSON File: JSONファイルからApp Testerに追加されたデータを、人間が簡単に判読できる形式で表示します。

ユーザーの管理

ユーザーのログインとログアウト、ユーザーの変更、ユーザーに関連付けられているマーケットプレイスの変更を行うことができます。これらのオプションを設定すると、ユーザーやマーケットプレイスをさまざまに変えて、条件の異なるシナリオを簡単にテストできます。

ユーザー管理画面にアクセスするには、App Testerのランディングページから [Appstore SDK APIs] を選択し、[User Account Settings] をタップします。

使用できるフィールドは、[Status]、[Amazon User ID]、[User Marketplace]、[Consent Status for User Profile Access] です。

ログインとログアウトの切り替え

現在のユーザーのログインとログアウトを切り替えるには、[Status][Logged in] または [Logged Out] オプションをタップします。

現在のユーザーを変更する方法

App Testerには、3つのテストユーザーアカウントが用意されています。テストユーザーには、Amazon User 1Amazon User 2Amazon User 3という名前が付いています。

テストに使用するユーザーIDを選択します。

現在のユーザーのマーケットプレイスを変更する方法

App Testerでは、世界中のさまざまなマーケットでアプリをテストできます。現在のユーザーに関連付けられているマーケットプレイスを変更するには、[User Marketplace] で新しいマーケットを選択します。以下のマーケットを使用できます。

  • US: 米国
  • CA: カナダ
  • MX: メキシコ
  • BR: ブラジル
  • GB: 英国
  • DE: ドイツ
  • FR: フランス
  • IT: イタリア
  • ES: スペイン
  • JP: 日本
  • IN: インド
  • AU: オーストラリア

アプリをクイック定期購入と統合している場合、[Consent Status for User Profile Access] オプションを使用すると、同意ステータスを設定できます。統合をテストするには、同意ステータスのレスポンスをCONSENTEDまたはUNAVAILABLEに設定します。CONSENTEDに設定した場合、アプリはrequestUserProfileAccess()メソッドを呼び出し、レスポンスオブジェクトにある認可コードでサーバーを更新する必要があります。次に、Appstore SDKが提供するREST APIをサンドボックスモードで使用して、アクセストークンとユーザープロフィールを取得し、自動的にログインします。UNAVAILABLEに設定した場合、アプリはデフォルトのログインエクスペリエンスにフォールバックする必要があります。

IAP APIレスポンス設定の構成

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

使用できるフィールドは、[GetProductData API]、[GetPurchaseUpdates API]、[GetUserData API]、[GetUserProfileAccessAuthCode API]、[Purchase API]、[ModifySubscription API] です。

レスポンスとして [Default] を選択すると、既存のデフォルト設定が使用されます。Defaultという設定自体が存在するわけではないことに注意してください。SUCCESSFULFAILEDなどの値を明示的に選択した場合は、その値が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
GetUserProfileAccessAuthCode Default、SUCCESSFUL、FAILED
Purchase Default、SUCCESSFUL、FAILED、ALREADY_PURCHASED、INVALID_SKU
ModifySubscription Default、SUCCESSFUL、FAILED、INVALID_REQUEST、INVALID_SKU

通知の有効化または無効化

[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()が呼び出されたかどうかを示す状態をリセットします。

トランザクションの管理

現在のユーザーの購入トランザクションの表示、キャンセル、削除を行うには、[Manage Transactions] タブを使用します。トランザクションのキャンセルと削除は、非消費型アイテムや定期購入型アイテムをテストするときに役立ちます。このタブには、現在のユーザーのすべてのトランザクションが表示されます。

トランザクションのリスト。各トランザクションには、[Item type]、[Sku]、[Receipt ID]、[Sold by]、[Purchased On]、[Status] のフィールドがあります。

[Manage Transactions] タブには、トランザクションごとに次の情報が表示されます。

  • [Item Type]: 購入された商品の種類。IAPで有効な値は、CONSUMABLE、ENTITLEMENT、SUBSCRIPTIONです。
  • [Sku]: アイテムのSKU。
  • [Receipt Id]: トランザクションの一意の識別子。
  • [Sold By]: アイテムを販売したアプリ。
  • [Purchased On]: アイテムが購入された日付。
  • [Status]: トランザクションのステータス。有効な値は、PURCHASED、CANCELED、PENDINGです。これらのApp Testerの値はそれぞれ、IAP APIの値のFULFILLED、UNAVAILABLE、PENDINGに対応しています。

アプリがPurchasingService.notifyFulfillment(receiptId, FulfillmentResult.FULFILLED)を呼び出すと、[Manage Transactions] セクションにレシートが FULFILLEDというステータスで表示されます。

 [Manage Transactions] タブでは、以下を実行できます。

  • 現在のユーザーのトランザクションの一覧を最新の状態に更新する。
  • 現在のユーザーのトランザクションをすべて削除する。
  • 個々のトランザクションをキャンセルする。
  • 個々のトランザクションを削除する。

JSONファイル内のIAPアイテムの確認

[IAP Items in JSON File] タブをタップすると、App Testerをインストールして構成する方法で構成したJSONファイル内のIAPアイテムを簡単に確認できます。有効なJSONファイルが正しく追加されていれば、App Testerによってファイルの内容が解析され、このタブに表示されます。

有効なJSONファイルが正しく追加されていない場合、このタブには、エラーメッセージまたはJSONファイルが存在しないという通知が表示されます。

ユーザーエクスペリエンスのシミュレーション

App Testerでは、APIリクエストに対してレスポンスを返すだけでなく、公開されたライブ状態のアプリと同じように購入フローダイアログを表示することもできます。これらのダイアログは、アプリの購入プロセスのユーザーエクスペリエンスを評価するために役立ちます。

App Testerは、購入リクエストごとに2つのインタースティシャルダイアログを表示します。1つ目は詳細画面で、購入価格などの詳細情報が表示されます。次のIAPの例を参照してください。

選択できるオプションには、[Cancel] と [Get Item] があります。
アプリの詳細画面

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

ありがとうございます。注文が完了しました。
お礼の画面

ログの表示方法

App Testerでは、アプリのトランザクションやその他のAPIインタラクションに関する詳細情報を取得するために、Logcatツールを使用します。アプリのテスト中に生成されたログをLogcatで表示するには、次の手順に従います。

  1. アプリとApp TesterがインストールされているAndroidデバイスを、Android Debug Bridge(ADB)が動作しているコンピューターに接続します。
  2. 「AmazonAppTester」というタグを検索して、App Testerのログエントリを表示します。

Eclipse DDMS(Dalvik Debug Monitor Server)開発環境を使用している場合は、[Logcat] タブのフィルターテキスト領域に「tag:AmazonAppTester」と入力すると、App Testerによって生成されたログエントリのフィルター処理を行うことができます。

App TesterによるDRMのテスト

デバイスでDRMをテストするには、Amazon App Testerをインストールする必要があります。アプリのDRM機能をテストするには、Amazon App Testerが必要です。

Amazon App Testerには [DRM API Response Settings] というタブがあり、さまざまなライセンスステータスのレスポンスをシミュレートできます。

Amazon App Testerを使用してアプリのライセンス検証をテストするには、次のdrm.ResponseReceiverをアプリのAndroidManifest.xmlファイルに追加します。アプリがAndroid 12以降を対象としている場合は、次の例に示すように、MainActivityResponseReceiverandroid:exportedを明示的にtrueに設定する必要があります。

 <application>
 ...
    <activity android:label="@string/app_name" android:name="com.amazon.sample.drm.MainActivity" 
                android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <receiver android:name = "com.amazon.device.drm.ResponseReceiver" android:exported="true" 
                android:permission = "com.amazon.drm.Permission.NOTIFY" >
        <intent-filter>
            <action android:name = "com.amazon.drm.NOTIFY" />
        </intent-filter>
    </receiver>
 ...
 </application>

また、DRMサンプルアプリの詳細も参照してください。


Last updated: 2024年12月18日