App Testerをインストールして構成する方法
App Testerを使用すると、アプリを公開に向けて申請する前に、サンドボックスモードでアプリ内課金(IAP)機能の単体テストを行うことができます。
App Testerをアプリと同じデバイスにダウンロードするか、Vega仮想デバイス(VVD)を使用できます。App Testerでは本番環境がシミュレートされます。
アプリでIAPに関するテストケースを実行でき、App TesterによってAPIレスポンスが生成されます(レスポンスはJSONファイルを使用して構成します)。
App Testerの前提条件
App Testerでテストケースを実行するには、開発環境とテスト環境が次の前提条件を満たしている必要があります。
- 開発環境でVDAおよびlogcatによるログの記録が可能であること。詳細については、VDAを使用した接続の方法とVDAコマンドに関するページを参照してください。
- アプリにVega IAP APIメソッド呼び出しが実装されていること。
- デバイスにSDK Testerがインストールされていないこと。SDK TesterにはApp TesterやVega IAP SDKとの互換性がありません。
- manifest.tomlファイルに次の情報が追加されていること。
[wants]
# ...ほかのwants
[[wants.service]]
id = "com.amazon.iap.tester.service" # Tester(サンドボックスモード)に必要
[[wants.module]]
id = "/com.amazonappstore.iap.tester@IIAPTesterUI"
[needs]
[[needs.module]]
id = "/com.amazon.kepler.appstore.iap.purchase.core@IAppstoreIAPPurchaseCoreService"
# ...
Amazonアプリストアに、アプリ用の購入可能なアイテムを1つ以上作成することをお勧めします。これにより、必要なJSONファイルの作成が簡単になります。
App Testerのダウンロード
App Testerは無料のアプリです。こちらからダウンロードできます。
React Native 0.72用
以下のダウンロードは、現在のリリース用です。
App Testerをデバイスにインストールする方法
デバイスでの設定方法は次のとおりです。
- IAP App Testerをインストールして起動するには、Vega仮想デバイスまたはFire TV Stickでのアプリの実行の手順に従ってください。
以下はクイックリファレンスです。
Fire TVデバイスへのインストール
.vpkgファイルをプッシュするには
kepler exec vda push <.vpkgファイルのパス>/<appname.vpkg> /tmp
Fire TVにアクセスするには
kepler exec vda shell
App Testerをデバイスにインストールするには
vpm install /tmp/<appname.vpkg>
Fire TVにアクセスするには
kepler exec vda shell
App Testerをデバイスからアンインストールするには
vpm uninstall <パッケージID>
<パッケージID>はcom.amazonappstore.iap.testerです。Vega仮想デバイスへのインストール
VVDを起動する方法
kepler virtual-device start
VVDにアプリをインストールする方法
kepler run-kepler <.vpkgファイルへのパス>/<アプリ名.vpkg> com.amazonappstore.iap.tester.ui -d VirtualDevice
VVDにアクセスする方法
kepler exec vda shell
デバイスでApp Testerを起動するには
vlcm launch-app pkg://com.amazonappstore.iap.tester.ui
デバイスでApp Testerを終了するには
vlcm terminate-app -f -p com.amazonappstore.iap.tester
vpmとvlcmの詳細については、パッケージとライフサイクルマネージャーのドキュメントを参照してください。
VVDにアプリをインストールして実行するには、App Testerをインストールして構成する方法を参照してください。
JSONデータファイルの作成
App Testerは、JSON(JavaScript Object Notation)ファイルに格納されているデータを使用してAPI呼び出しに応答します。このファイルには、IAPアイテムの購入データが含まれます。
JSONファイルは、Amazon開発者ポータルで自動的に作成できます。
- ウェブブラウザでAmazon開発者ポータルを開き、アプリのページに移動します。
- 購入可能なIAPアイテムをまだアプリに追加していない場合は追加します。
- リンクをクリックして、JSONデータファイルをダウンロードします。
- ダウンロードしたファイルの名前を「amazon.sdktester.json」にします。
-
SKU JSONファイルをデバイスにプッシュします。
1.デバイスに次のディレクトリを作成します。
kepler exec vda shell mkdir /tmp/scratch/com.amazonappstore.iap.tester/2.作成したディレクトリにプッシュします。
kepler exec vda push <amazon.sdktester.jsonファイル> /tmp/kepler exec vda shell cp /tmp/<amazon.sdktester.json> /tmp/scratch/com.amazonappstore.iap.tester/
VVD用のJSONデータファイルの作成
1.デバイスに次のディレクトリを作成します。
kepler exec vda shell mkdir /tmp/scratch/com.amazonappstore.iap.tester/
2.作成したディレクトリにプッシュします。
kepler device copy-to -s <amazon.sdktester.jsonのパス> --destination /tmp/scratch/com.amazonappstore.iap.tester
ダウンロードしたJSONファイルを開くと、一般的に次のようなファイル形式になっています。
{
Item_ID_1:{Item_1_Description},
Item_ID_2:{Item_2_Description},
.
.
.
Item_ID_n:{Item_n_Description}
}
実際のアイテムの記述定義は、アイテムのタイプによって異なります。JSONファイル内のアイテムの順序に意味はありません。記述の定義間にあるコンマ「,」に注意してください。
ファイル形式と例: IAPの消費型アイテムと非消費型アイテム
IAPの消費型アイテムと非消費型アイテムの記述形式は同じです。itemTypeプロパティは、アイテムが非消費型(ENTITLED)であるか、消費型(CONSUMABLE)であるかを示します。すべての購入可能アイテムには、SKUと呼ばれる一意の識別子が関連付けられています。
"your_item_SKU":{
"itemType": "ENTITLED|CONSUMABLE",
"price": price,
"title": "item_title",
"description": "item_description",
"smallIconUrl": "full_url_for_small_icon"
}
次の例は、消費型アイテムと非消費型アイテムを示しています。
{
"com.amazon.sample.iap.consumables.orange":{
"itemType": "CONSUMABLE",
"price": 10.00,
"title": "オレンジ",
"description": "オレンジ",
"smallIconUrl": "http://www.amazon.com/orange.jpg"
},
"com.amazon.sample.iap.entitlements.level2":{
"itemType": "ENTITLED",
"price": 10.00,
"title": "レベル2",
"description": "レベル2をプレイできる非消費型アイテム"
}
}
ファイル形式と例: IAPの定期購入型アイテム
定期購入型アイテムには、ほかのタイプの購入可能アイテムとは異なる点があります。すべての購入可能アイテムには、そのアイテムを一意に識別するSKUという識別子が関連付けられています。定期購入型アイテムの購入時には、2つのSKUが使用されます。1つは、定期購入の対象(雑誌のタイトルなど)を表す「親SKU」です。もう1つは、定期購入の条件(価格、期間)を表す「条件SKU」です。ユーザーが実際に購入するのは条件SKUです。
購入可能なアイテムは条件SKUなので、JSONのIAPアイテムの記述で定義するのはそのアイテムです。ただし、この記述には親SKUへの参照も含める必要があります。このため、定期購入型アイテムにはsubscriptionParentというプロパティが追加されています。
"your_terms_SKU":{
"itemType": "SUBSCRIPTION",
"price": price,
"title": item_title,
"description": item_description,
"smallIconUrl": "http://www.amazon.com/kindle.jpg",
"subscriptionParent": "your_parent_SKU"
}
以下は定期購入型アイテムの記述例です(定期購入型アイテムの親SKUに注目してください)。
{
"com.amazon.sample.iap.subscription.mymagazine.silver": {
"description": "マイマガジン(シルバー)の1か月ごとの定期購入",
"title": "シルバー(月単位)",
"itemType": "SUBSCRIPTION",
"price": 50.0,
"subscriptionBase": "com.amazon.subs.base",
"subscriptionParent": "com.amazon.subs.silver",
"term": "Monthly",
"freeTrialPeriod": "Monthly",
},
"com.amazon.sample.iap.subscription.mymagazine.gold": {
"description": "マイマガジン(ゴールド)の1か月ごとの定期購入",
"title": "ゴールド(月単位)",
"itemType": "SUBSCRIPTION",
"price": 80.0,
"term": "Monthly",
"subscriptionBase": "com.amazon.subs.base",
"subscriptionParent": "com.amazon.subs.gold"
}
}
IAPアイテムの検証
JSONファイルの内容は簡単に確認できます。App Testerのメインメニューで [IAP Items in JSON File] オプションをタップすると、人間が判読できる形式でJSONファイル内のアイテムデータの一覧が表示されます。
次のステップ: App Testerの使用
Last updated: 2025年9月30日

