Edit the Blog Post Header component above this, then place your content here, then fill out the Related Articles section below, if possible. You should have at least one related article and ideally, all three.
Feel free to add supplementary content to the sidebar at right, but please retain the Twitter component (it can live at the bottom of your added content).
This text component can be edited or deleted as necessary.
Related articles only have an image (the squarer version of the banner) and a title. This text can be deleted. Place 1-3 related articles.
アプリのアプリ内課金(IAP)アイテムをテストすることは非常に重要です。このため、効率的な開発ワークフローの一部としてテストを組み込み、アプリの開発と並行してすぐにテストを開始できるしくみが必要となります。
これを実現するのがIAP用DevTestです。IAP用DevTestでは、アプリの公開やベータバージョンの申請をしなくても、Amazonの公開サービスに対してローカルでテストを実行できます。購入ロジックをすぐにテストして素早く改善できるため、ベータテスト(ライブアプリテスト)の段階では、IAP機能が確実に動作することを確認した上でリリースできます。
DevTestとApp Testerやライブアプリテストとの違い
App Testerはレスポンスを擬似的にシミュレートするだけですが、DevTestはAmazonの実際のサービスに接続します。つまり、実際の動作をテストできます。
ライブアプリテストでは、まずアプリを(ベータ版として)公開することが必要ですが、DevTestではその必要はありません。コードを記述した直後にテストできます。
独自のプロジェクトでDevTestを使い始める手順をイメージしやすくするために、ここではシンプルな架空のアプリを例として、DevTestの設定手順を詳しく見ていきましょう。
「数当てゲーム」は、1~100のランダムな数を5回以内に当てるゲームアプリです。1回予想するたびに、正解の数が予想よりも「大きい」か「小さい」かが示されます。
このゲームにはIAPアイテムが3つ(各タイプが1つずつ)あります。
アプリが提供するトラッキングの定期購入型アイテム、追加の予想回数の消費型アイテム、ヒントの非消費型アイテムが正しく機能することを保証するには、Amazonの公開サービスに対してこれらをテストする必要があります。DevTestを使用すれば、アプリの承認を待つことなく、これらの購入フローをすぐに検証できます。
まだ証明書がない場合は、次のコマンドを使用してローカルで証明書を生成します。
$ openssl req -x509 -nodes \
-newkey ec \
-pkeyopt ec_paramgen_curve:secp384r1 \
-keyout key.pem -out cert.pem
これにより、key.pem(プライベートキー)とcert.pem(証明書)の2つのファイルが作成されます。これらはアプリの登録と署名に必要となるため、両方のファイルを安全な場所に保存しておきます。
Amazon開発者コンソールでアプリを作成します(まだ作成していない場合)。次に、[IAP用Amazon Appstore DevTest] に移動します。
cert.pemファイルの内容をコピーし、証明書フィールドに貼り付けます。アプリのパッケージ名を入力します。パッケージ名は、プロジェクトのbuild.gradleファイルで確認できます。[登録] をクリックします。
アプリの登録プロセスには数分かかることがあります。完了後にこのページを再読み込みすると、次のような画面が表示されます。
アプリには複数の証明書を追加できます。このため、異なる証明書(最大3個)でAPKをビルドして署名できます。
既にアプリにIAPアイテムが追加されている場合は、この手順をスキップできます。追加されていない場合は、[アプリ内課金(IAP)アイテム] に移動して、定期購入型アイテム、消費型アイテム、非消費型アイテムを追加します。
IAPアイテムをテストするには、それぞれを事前に申請する必要があります。
[IAP用Amazon Appstore DevTest] で、[テスターの管理] に移動します。
テストアカウントを追加します。これにより、開発者(およびほかのテスター)が実際の課金なしで購入を行えるようになります。最大50人のテスターを追加して、各自のデバイスで購入をテストできます。
DevTestへの登録に使用したものと同じ証明書を使用して、署名付きAPKを生成します。
証明書からキーストアを作成します。
$ openssl pkcs12 -export -out keystore.p12 -inkey key.pem -in cert.pem
Android Studioを使用している場合は、[Generate Signed App bundle or APK] に移動します。
[APK] をクリックします。
先ほど作成したキーストアファイルを使用してアプリに署名します。キーエイリアスを入力するように求められた場合、通常は「1」ですが、ターミナルで次のコマンドを実行することで確認できます。
$ keytool -v -list -keystore keystore.p12
Enter keystore password:
Keystore type: PKCS12
Keystore provider: SUN
Your keystore contains 1 entry
Alias name: 1
…
ビルドが完了すると、任意のテストデバイスにサイドロードできる署名付きAPKが生成されます。アプリはDevTestへの登録に使用された証明書で署名されているため、Appstore SDK APIの呼び出しはすべて、Amazonのテストサーバーにルーティングされます。
これで購入をテストする準備ができました。
署名付きAPKをテストデバイスにインストールします。ADBを使用してFireタブレットに接続またはFire TVに接続する手順に従ってください。署名付きAPKに対応するファイルを使用して、次のコマンドを実行します。
$ adb install app-release.apk
Performing Streamed Install
Success
アプリをインストールしたら、追加されたIAPアイテムがデバイスで認識されるように、デバイスをAmazonのサーバーと同期します。テストデバイスで、[設定] > [デバイスオプション] > [Sync Device] に移動します。
DevTestでのアプリのテスト中、内部で何が行われているかを確認するには、adb logcatを使用します。テストデバイスに接続した状態のコンピューターで、ターミナルを開き、アプリのパッケージ名を使用して次のコマンドを実行します。
$ adb logcat | grep com.example.guessthenumber
これにより、ログステートメントが指定のアプリでフィルタリングされて表示されます。
アプリを実際に使用して、それぞれの購入タイプをテストします。テスト中、ログをモニタリングしながら、想定外の動作があればデバッグします。エッジケースもテストします。たとえば、次のような状況を想定します。
本番環境になってから想定外のシナリオが見つかることのないように、ここであらゆるシナリオをテストしてください。
このプロセスの間、アプリは常にAmazonの実際のサーバーと通信するため、現実のユーザーに影響を与えずに現実に即した購入フローを試すことができます。
IAP購入をリセットするには、Amazon開発者コンソールの [テスターの管理] ページに戻ります。テスターを選択し、リセットアクションを選択します。
これにより、テスターは再びクリーンな状態からアプリをテストできます。
DevTestを使用することで、アプリの申請、審査待ち、テスト実施、バグ発見という一連のサイクルが不要となり、IAP開発とデバッグのプロセスを大幅に効率化できます。これを使用すると、購入ロジックを記述した直後にすばやくテストできます。
DevTestは開発の初期段階で使用します。IAPコードを記述したら、DevTestを設定します。迅速で簡単なイテレーションを通じて、あらゆる動作をローカルでテストします。IAPコードが正しく機能することを確信したら、ライブアプリテストに移行します。ベータテスターは、基本的な統合に関するバグを見つけることではなく、ユーザーエクスペリエンスのテストに集中できます。
DevTestは、時間の節約になるという効果だけでも設定する価値はありますが、購入フローの欠陥を本番環境で問題になる前に捕捉するためにも役立ちます。設定の詳細な手順については、IAP用Appstore DevTestの開始手順を参照してください。次にリリースするAmazonアプリストアプロジェクトで、今すぐDevTestを活用しましょう。