as

Settings
Sign out
Notifications
Alexa
Amazonアプリストア
AWS
ドキュメント
Support
Contact Us
My Cases
デバイス
ビルド
テスト
公開
関連情報
ドキュメント

Share:

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

Related article title here

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.

Subscribe

IAPを公開前にテストする方法(DevTest)

Share:
How to Make Money
Blog_Header_Post_Img

アプリのアプリ内課金(IAP)アイテムをテストすることは非常に重要です。このため、効率的な開発ワークフローの一部としてテストを組み込み、アプリの開発と並行してすぐにテストを開始できるしくみが必要となります。

これを実現するのがIAP用DevTestです。IAP用DevTestでは、アプリの公開やベータバージョンの申請をしなくても、Amazonの公開サービスに対してローカルでテストを実行できます。購入ロジックをすぐにテストして素早く改善できるため、ベータテスト(ライブアプリテスト)の段階では、IAP機能が確実に動作することを確認した上でリリースできます。
 

DevTestとApp Testerやライブアプリテストとの違い

App Testerはレスポンスを擬似的にシミュレートするだけですが、DevTestはAmazonの実際のサービスに接続します。つまり、実際の動作をテストできます。

ライブアプリテストでは、まずアプリを(ベータ版として)公開することが必要ですが、DevTestではその必要はありません。コードを記述した直後にテストできます。
 

独自のプロジェクトでDevTestを使い始める手順をイメージしやすくするために、ここではシンプルな架空のアプリを例として、DevTestの設定手順を詳しく見ていきましょう。

架空のアプリ: 「数当てゲーム」

「数当てゲーム」は、1~100のランダムな数を5回以内に当てるゲームアプリです。1回予想するたびに、正解の数が予想よりも「大きい」か「小さい」かが示されます。

How to test In-App-Purchase pre-launch

このゲームにはIAPアイテムが3つ(各タイプが1つずつ)あります。

  • 「アドバンスドモード」は、得点のトラッキングを可能にする月単位の定期購入型アイテムです。
  • 「追加の予想回数」は、予想回数の残りがなくなったときに追加できる消費型アイテムです。これは使用すると消費されるため、複数回購入できます。
  • 「割り算ヒント」は、各ゲームの開始時に、正解の数が2、3、5のいずれかで割り切れるかどうかを教えてくれる非消費型アイテムです。1回購入したら永続的に使用できます。

How to test In-App-Purchase pre-launch
How to test In-App-Purchase pre-launch

IAP用DevTestを設定する方法

アプリが提供するトラッキングの定期購入型アイテム、追加の予想回数の消費型アイテム、ヒントの非消費型アイテムが正しく機能することを保証するには、Amazonの公開サービスに対してこれらをテストする必要があります。DevTestを使用すれば、アプリの承認を待つことなく、これらの購入フローをすぐに検証できます。

 

手順1: 証明書を生成する

まだ証明書がない場合は、次のコマンドを使用してローカルで証明書を生成します。

Copied to clipboard
$ openssl req -x509 -nodes \
    -newkey ec \
    -pkeyopt ec_paramgen_curve:secp384r1 \
    -keyout key.pem -out cert.pem

これにより、key.pem(プライベートキー)とcert.pem(証明書)の2つのファイルが作成されます。これらはアプリの登録と署名に必要となるため、両方のファイルを安全な場所に保存しておきます。

 

手順2: Amazon開発者コンソールでアプリを登録する

Amazon開発者コンソールでアプリを作成します(まだ作成していない場合)。次に、[IAP用Amazon Appstore DevTest] に移動します。

How to test In-App-Purchase pre-launch

cert.pemファイルの内容をコピーし、証明書フィールドに貼り付けます。アプリのパッケージ名を入力します。パッケージ名は、プロジェクトのbuild.gradleファイルで確認できます。[登録] をクリックします。

How to test In-App-Purchase pre-launch

アプリの登録プロセスには数分かかることがあります。完了後にこのページを再読み込みすると、次のような画面が表示されます。

How to test In-App-Purchase pre-launch

アプリには複数の証明書を追加できます。このため、異なる証明書(最大3個)でAPKをビルドして署名できます。

 

手順3: IAPアイテムを追加する

既にアプリにIAPアイテムが追加されている場合は、この手順をスキップできます。追加されていない場合は、[アプリ内課金(IAP)アイテム] に移動して、定期購入型アイテム、消費型アイテム、非消費型アイテムを追加します。

How to test In-App-Purchase pre-launch

IAPアイテムをテストするには、それぞれを事前に申請する必要があります。

How to test In-App-Purchase pre-launch

手順4: テストアカウントを追加する

[IAP用Amazon Appstore DevTest] で、[テスターの管理] に移動します。

How to test In-App-Purchase pre-launch

テストアカウントを追加します。これにより、開発者(およびほかのテスター)が実際の課金なしで購入を行えるようになります。最大50人のテスターを追加して、各自のデバイスで購入をテストできます。

How to test In-App-Purchase pre-launch

手順5: 署名付きAPKを生成する

DevTestへの登録に使用したものと同じ証明書を使用して、署名付きAPKを生成します。

 

証明書からキーストアを作成します。

Copied to clipboard
$ openssl pkcs12 -export -out keystore.p12 -inkey key.pem -in cert.pem

Android Studioを使用している場合は、[Generate Signed App bundle or APK] に移動します。

How to test In-App-Purchase pre-launch

[APK] をクリックします。

How to test In-App-Purchase pre-launch

先ほど作成したキーストアファイルを使用してアプリに署名します。キーエイリアスを入力するように求められた場合、通常は「1」ですが、ターミナルで次のコマンドを実行することで確認できます。

Copied to clipboard
$ 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のテストサーバーにルーティングされます。

 

これで購入をテストする準備ができました。

DevTestを使用してIAPテストを実行する方法

署名付きAPKをテストデバイスにインストールします。ADBを使用してFireタブレットに接続またはFire TVに接続する手順に従ってください。署名付きAPKに対応するファイルを使用して、次のコマンドを実行します。

Copied to clipboard
$ adb install app-release.apk 

Performing Streamed Install
Success

アプリをインストールしたら、追加されたIAPアイテムがデバイスで認識されるように、デバイスをAmazonのサーバーと同期します。テストデバイスで、[設定] > [デバイスオプション] > [Sync Device] に移動します。

 

logcatを使用したデバッグ

DevTestでのアプリのテスト中、内部で何が行われているかを確認するには、adb logcatを使用します。テストデバイスに接続した状態のコンピューターで、ターミナルを開き、アプリのパッケージ名を使用して次のコマンドを実行します。

Copied to clipboard
$ adb logcat | grep com.example.guessthenumber

これにより、ログステートメントが指定のアプリでフィルタリングされて表示されます。

アプリを実際に使用して、それぞれの購入タイプをテストします。テスト中、ログをモニタリングしながら、想定外の動作があればデバッグします。エッジケースもテストします。たとえば、次のような状況を想定します。

  • ユーザーが購入をキャンセルしたらどうなるか
  • トランザクションの途中でネットワークが切断されたらどうなるか
  • 同じ非消費型アイテムを2回購入しようとしたらどうなるか

本番環境になってから想定外のシナリオが見つかることのないように、ここであらゆるシナリオをテストしてください。

このプロセスの間、アプリは常にAmazonの実際のサーバーと通信するため、現実のユーザーに影響を与えずに現実に即した購入フローを試すことができます。

 

IAP購入のリセット

IAP購入をリセットするには、Amazon開発者コンソールの [テスターの管理] ページに戻ります。テスターを選択し、リセットアクションを選択します。

How to test In-App-Purchase pre-launch

これにより、テスターは再びクリーンな状態からアプリをテストできます。

まとめと次のステップ

DevTestを使用することで、アプリの申請、審査待ち、テスト実施、バグ発見という一連のサイクルが不要となり、IAP開発とデバッグのプロセスを大幅に効率化できます。これを使用すると、購入ロジックを記述した直後にすばやくテストできます。

DevTestは開発の初期段階で使用します。IAPコードを記述したら、DevTestを設定します。迅速で簡単なイテレーションを通じて、あらゆる動作をローカルでテストします。IAPコードが正しく機能することを確信したら、ライブアプリテストに移行します。ベータテスターは、基本的な統合に関するバグを見つけることではなく、ユーザーエクスペリエンスのテストに集中できます。

DevTestは、時間の節約になるという効果だけでも設定する価値はありますが、購入フローの欠陥を本番環境で問題になる前に捕捉するためにも役立ちます。設定の詳細な手順については、IAP用Appstore DevTestの開始手順を参照してください。次にリリースするAmazonアプリストアプロジェクトで、今すぐDevTestを活用しましょう。

関連記事

ニュースレターを購読してみませんか?

最新のAmazon開発者向けニュース、業界の動向、ブログの記事をお届けします。