App Testerユーザーガイド
App Testerを使用すると、アプリをAmazonアプリストアで公開する前に、Amazonアプリ内課金(IAP)の機能をテストできます。App Testerツールのダウンロード、インストール、設定を完了した後、IAP機能のテストを開始できます。
notifyFulfillment()
呼び出しによってFULFILLEDまたはUNAVAILABLEとしてマークされるまで、追加のアプリ内購入を行うことはできません。このロジックにより、IAP SDKを介した購入処理が正しく実装されているかどうかを確認できます。このロジックはApp Testerにのみ適用され、本番環境での動作には適用されません。App Testerがアプリ用にセットアップされていない場合は、App Testerをインストールして構成する方法を参照してください。
- App Testerの使用
- Appstore SDK APIの選択
- ユーザーの管理
- IAP APIレスポンス設定の構成
- 通知の有効化または無効化
- トランザクションの管理
- JSONファイル内のIAPアイテムの確認
- ユーザーエクスペリエンスのシミュレーション
- ログの表示方法
- App TesterによるDRMのテスト
App Testerの使用
Amazon App Testerは、Amazonアプリストアでの認可をシミュレートするためのツールです(以前はIAPでのみ使用)。App Testerは、Amazon App Testerの販売ページまたはAmazonアプリストアからテストデバイスにダウンロードできます。
Amazon App Testerを使用してアプリのライセンス検証をテストするには、次の手順を実行します。
-
ADBを使用して、コンピューターをFire TVまたはFireタブレットに接続します。詳細については、次のどちらかを参照してください。
-
次のコマンドを使用して、アプリをサンドボックスモードに設定します。
adb shell setprop debug.amazon.sandboxmode debug
サンドボックスモードでは、通常であればAmazonアプリストアクライアントに向かう呼び出しを、強制的にAmazon App Testerアプリへとルーティングします。このモードは、ローカルでのテストにのみ使用します。
- Amazon App Testerの既存のバージョンをアンインストールしてから、Fireデバイスで最新バージョンをダウンロードして開きます。
-
Amazon App Testerを開き、[Appstore SDK APIs] > [DRM API Response Settings] > [GetLicense API] の順に選択します。いくつかのライセンスオプションを設定できます。
-
DRMを含むFire TVアプリまたはFireタブレットアプリを実行します。Amazon App Testerは、選択された内容に基づいて、ユーザーのライセンスステータスに関するレスポンスをシミュレートします。
サンドボックスモードを終了するには、以下を実行します。
adb shell setprop debug.amazon.sandboxmode none
Appstore SDK APIの選択
App Testerを初めて起動すると、ランディングページでAppstore SDK APIを選択するように求められます。
[Appstore SDK APIs] というプロンプトをタップして開始します。
App Testerに、Appstore SDK APIのナビゲーションオプションのリストが表示されます。
- User Account Settings: アプリのテストユーザーアカウントを構成します。
- Subscription Purchase Settings: 自動更新や無料体験など、定期購入テストケースの条件を設定します。
- IAP API Response Settings: テストケースの条件やレスポンスを設定します。
- DRM API Response Settings: DRMテストケースのライセンスレスポンスを設定します。
- Simple Sign-In API Response Settings: シンプルサインインテストケースの条件を設定します。詳細なテスト手順については、シンプルサインインのドキュメントのApp Testerを使用してアプリをテストする方法を参照してください。
- Manage Sign-In links: シンプルサインインにリンクされているアカウントをクリアして、テスト条件をリセットします。詳細については、リンク済みアカウントの管理を参照してください。
- Notification Settings: 通知ドロワーに追加される通知を有効または無効にします。
- Manage Transactions: アプリのアクティブなIAPトランザクションを管理します。
- IAP Items in JSON File: JSONファイルからApp Testerに追加されたデータを、人間が簡単に判読できる形式で表示します。
ユーザーの管理
ユーザーのログインとログアウト、ユーザーの変更、ユーザーに関連付けられているマーケットプレイスの変更を行うことができます。これらのオプションを設定すると、ユーザーやマーケットプレイスをさまざまに変えて、条件の異なるシナリオを簡単にテストできます。
ユーザー管理画面にアクセスするには、App Testerのランディングページから [Appstore SDK APIs] を選択し、[User Account Settings] をタップします。
ログインとログアウトの切り替え
現在のユーザーのログインとログアウトを切り替えるには、[Status] の [Logged in] または [Logged Out] オプションをタップします。
現在のユーザーを変更する方法
App Testerには、3つのテストユーザーアカウントが用意されています。テストユーザーには、Amazon User 1、Amazon User 2、Amazon 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] タブを使用します。
レスポンスとして [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 |
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] タブを使用します。トランザクションのキャンセルと削除は、非消費型アイテムや定期購入型アイテムをテストするときに役立ちます。このタブには、現在のユーザーのすべてのトランザクションが表示されます。
[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の例を参照してください。
2番目のダイアログは、購入者へのお礼を表示する画面です。このページは、ユーザーが右上隅の [X] ボタンをタップして手動で閉じる必要があります。次のIAPの例を参照してください。
ログの表示方法
App Testerでは、アプリのトランザクションやその他のAPIインタラクションに関する詳細情報を取得するために、Logcatツールを使用します。アプリのテスト中に生成されたログをLogcatで表示するには、次の手順に従います。
- アプリとApp TesterがインストールされているAndroidデバイスを、Android Debug Bridge(ADB)が動作しているコンピューターに接続します。
- 「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以降を対象としている場合は、次の例に示すように、MainActivity
とResponseReceiver
でandroid: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日