手順9: アプリに署名してセキュリティプロファイルを構成する
このページでは、アプリに署名し、アプリの認証に使用するAPIキーを作成する手順について説明します。
- 開発中のアプリの署名について
- アプリの署名に使用する鍵の作成
- カスタム鍵によるアプリへの自動署名
- 鍵からのMD5値とSHA-256値の取得
- Amazon開発者アカウントの作成
- セキュリティプロファイルの作成
- Fire TVプロジェクトへのAPIキーの追加
- アプリへのセキュリティプロファイルの関連付け
- 開発者コンソールで使用する署名付きAPKの生成
- 開発者コンソールへのAPKのアップロード
- すべてのアプリ申請情報の入力
- ライブアプリテスト(LAT)へのアプリの申請(新規アプリのみ)
- 次のステップ
開発中のアプリの署名について
アプリの署名とはハッシュ値のことであり、どのAndroidアプリでも、ビルド時にこのハッシュ値が適用されます。開発中のアプリをAndroid Studioから実行する場合、デフォルトでは、Androidがデフォルトのデバッグ鍵を使用してアプリの署名を自動的に行います。
しかし、VSKを組み込むプロジェクトの場合は、Android Studioから提供されるデフォルトのデバッグ鍵がFire TVで受け付けられず、アプリが機能しないことがあります。アプリをローカルで開発している場合(Fire TVにサイドロードしている場合)でも、自分でAPKに署名を行い、署名のMD5値とSHA-256値を特定のAmazonセキュリティプロファイルに関連付ける必要があります。アプリに組み込むAPIキーは、セキュリティプロファイルで提供されます。
Android Studioでデバッグ署名鍵をカスタマイズし、Fire TV対応アプリに適切に署名するには、以下の手順に従います。
アプリの署名に使用する鍵の作成
プレリリース(デバッグ)版アプリの場合は、APIキーを作成してプロジェクトに保存する必要があります。APIキーをアプリに追加する方法は以下のとおりです。
- プロジェクトのassetsフォルダに
api_key.txt
という名前のファイルを作成します。このファイルは、必ずassetsフォルダに配置するようにしてください。 api_key.txt
ファイルにAPIキーを挿入します。これ以外のデータは含めないでください。
リリース(実稼働)版アプリで、Appstore SDKを使用している場合は、そのアプリ用に追加のAPIキーを作成する必要があります。また、以前のIAP SDK v2.0を使用していて、独自の証明書を使用してアプリに署名する場合も、そのアプリ用のAPIキーを作成する必要があります。これに対して、IAP SDK v2.0を使用していて、アプリへの署名をAmazonに任せる場合は、新たなAPIキーを作成する必要はありません。概要については、以下の表を参照してください。
既存のアプリのAPIキーを作成するには、開発者コンソールでAmazonアプリストアの証明書ハッシュ値を確認します。[マイアプリ] に移動してアプリを選択し、[Upload Your App File] > [Amazonアプリストアの証明書ハッシュ] の順にクリックします。
アプリの署名方法に関するクイックリファレンスを以下に示します。
Appstore SDKの使用 | リリース版アプリへの自己署名 | 実稼働版/開発版 | アプリの署名方法 |
---|---|---|---|
実稼働版 | APIキーは自動的に生成され、リリース版アプリに挿入されるため、何もする必要はありません。 | ||
実稼働版 | 独自のリリース版証明書ハッシュを使用して開発者側でAPIキーを作成し、それをアセットに追加する必要があります。 | ||
実稼働版 | 開発者コンソールから取得したリリース版証明書ハッシュを使用して開発者側でAPIキーを作成し、それをアセットに追加する必要があります。 | ||
実稼働版 | 独自のリリース版証明書ハッシュを使用して開発者側でAPIキーを作成し、それをアセットに追加する必要があります。 | ||
任意 | 任意 | 開発版 | 独自のリリース版証明書ハッシュを使用して開発者側でAPIキーを作成し、それをアセットに追加する必要があります。 |
鍵は、キーストアに格納されます。Androidアプリの場合、通常はデバッグ用のキーストアとリリース用のキーストアがあります。署名に使用する鍵を作成するには、次の手順を実行します。
- アプリの署名に使用するカスタムデバッグ鍵(デフォルトのAndroidデバッグ鍵ではない鍵)が既にある場合は、その鍵のキーストアの場所、キーストアのパスワード、鍵のエイリアス、鍵のパスワードを確認してください。確認できたら、次のセクション( カスタム鍵によるアプリへの自動署名)に進みます。
- カスタムデバッグ鍵がない場合は、Android Studioを開き、上部のメニューの [Build] をクリックして、[Generate Signed Bundle / APK] をクリックします。
- [Generate Signed Bundle or APK] ダイアログボックスで、[APK] を選択します。[Next] をクリックします。
- [Create new] をクリックし、新しい鍵の各フィールドを入力します。詳細については、Androidドキュメントのアップロード鍵とキーストアを生成するを参照してください。証明書フォームの1つ以上のフィールドに入力します。入力し終えたら、[OK] をクリックします。
-
キーストアの場所、キーストアのパスワード、鍵のエイリアス、鍵のパスワードをメモしておきます。この情報は次のセクションで必要になります。
詳細については、Androidドキュメントのアップロード鍵とキーストアを生成するを参照してください。
- APK生成用のほかのウィザード画面には進まずに、ダイアログボックスを閉じます。次の手順に進みます。
カスタム鍵によるアプリへの自動署名
前のセクション(アプリの署名に使用する鍵の作成)では、アプリに署名するためのカスタム鍵を作成しました。この手順では、Android Studioのデバッグプロファイルで使用する鍵を更新します。デバッグプロファイルで使用する署名キーをカスタマイズするには、次の手順を実行します。
- Android StudioでFire TV対応アプリのプロジェクトを開き、[File] > [Project Structure] の順にクリックします。
- 左側の [Modules] をクリックします。
- 上部の [Signing Configs] タブをクリックします。
- [+] ボタンをクリックし、firetvという新しい構成を作成します。
-
[Store File]、[Store Password]、[Key Alias]、[Key Password] を選択して新しいfiretv署名構成プロファイルを設定します。前のセクション(アプリの署名に使用する鍵の作成)でメモしておいた情報を設定してください。
ヒント: [Store Password] と [Key Password] を選択すると、Androidではこの情報を変数($var
)として保存できます。パスワードは変数として保存することをお勧めします。そうしないと、パスワードがbuild.gradle (Module: app)
ファイルに存在するため、Gitのチェックインで問題が生じます。これらの値を変数として保存すると、build.gradle
ファイルのstorePassword
値とkeyPassword
値が、プロジェクトのファイルではvar
として表示され、実際の値はコンピューターのローカルでのみ保持されます。 - [Apply] をクリックしてから、[OK] をクリックしてダイアログボックスを閉じます。更新された署名情報がプロジェクトに反映されます。
- 左側のペインで [Gradle Scripts] を展開し、
build.gradle (Module: app)
ファイルをダブルクリックします。 -
signingConfigs
というオブジェクトに、作成したfiretv
署名構成プロファイルの内容が表示されていることを確認します。次に例を示します。android { signingConfigs { firetv { storeFile file('/Users/johndoe/android_signature/androidkeys.jks') storePassword var keyAlias = 'myandroidkeys' keyPassword var } } ... } ... }
buildTypes
プロパティでは、リリースビルドとデバッグビルドの両方にfiretv
署名キーを使用するように指定する必要があります。サンプルアプリでコメントアウトされている場合は、コメントを解除します。buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' signingConfig signingConfigs.firetv } debug { signingConfig signingConfigs.firetv } }
これで、(後の手順で作成する)Amazon開発者セキュリティプロファイルで使用するAPIキーと一致するAPIキーがビルドの署名に使用され、Fire TVデバイスにアプリをインストールできるようになります。
アプリの署名の詳細については、Androidドキュメントのアプリに自動で署名するようビルドプロセスを設定するを参照してください。
ここで覚えておくべき原則は、Fire TV対応アプリを開発して実行する場合、アプリの署名には、Android Studioのデフォルトのデバッグ鍵ではなく、Amazonセキュリティプロファイルに関連付けられた鍵を使用するということです。この原則が守られるのであれば、アプリに署名するプロセスが上記の手順と異なっても構いません(後のセクションで、この鍵をセキュリティプロファイルに関連付けます)。
鍵からのMD5値とSHA-256値の取得
AmazonセキュリティプロファイルからAPIキーを生成する(次の手順で説明)には、署名鍵からMD5値とSHA-256値を取得しておく必要があります。これらの値は、Android Studioの [Gradle] メニューから取得できます。取得するには、次の手順を実行します。
- Android Studioで、右側の [Gradle] サイドペインをクリックして展開します。
- [<アプリ名>] > [Tasks] > [android] の順に展開します。
-
[signingReport] をダブルクリックします。
Gradleによって、キーストアからMD5値とSHA-256値が読み取られ、下のペインに表示されます。
- 必要なのは、MD5値とSHA-256値だけです。このMD5値とSHA-256値を、アクセスしやすい場所にコピーしておきます。これらの値は、セキュリティプロファイルの作成時に必要になります。
Amazon開発者アカウントの作成
まだAmazon開発者アカウントを作成していない場合は、https://developer.amazon.com/ja/で、画面右上の [ログイン] をクリックしてから [Amazon Developerアカウントを作成] をクリックし、アカウントを作成します。初めての場合は、情報フィールドへの入力が必要になります。詳細については、開発者アカウントの作成を参照してください。
セキュリティプロファイルの作成
セキュリティプロファイルによって、セキュリティ認証情報をアプリに関連付けることができます。このセキュリティプロファイルを開発者ポータルで作成し、作成したプロファイルの構成にMD5値とSHA-256値を追加します。これにより、アプリとセキュリティプロファイルの間に認証が作成されます。セキュリティプロファイルを作成するには、次の手順を実行します。
- https://developer.amazon.com/ja/にログインし、[Developer Console] をクリックします。これで、Amazonアプリストア開発者コンソールが表示されます。
- [設定] をクリックし、1段下のメニューから [セキュリティプロファイル] をクリックします。
- [セキュリティプロファイルを新規作成] ボタン(右下隅)をクリックします。
-
[セキュリティプロファイル名] フィールドに、わかりやすい名前を指定します。たとえば、アプリと同じ名前にすることができます。[セキュリティプロファイルの説明] フィールドには、必要な説明を入力します。
- [保存] をクリックします。
-
[Android/Kindleの設定] タブをクリックします。
-
次のフィールドの値を入力します。
フィールド 説明 APIキー名 これは、アプリの正式名称である必要はありません。この名前は、セキュリティプロファイルに登録されている複数のアプリやウェブサイトから、このAndroidアプリを識別するために使用されます。 パッケージ これは、カスタマイズしたAndroidプロジェクトのパッケージ名と一致する必要があります。Android Studioで、[app] > [manifests] > AndroidManifest.XML
のマニフェストを見つけ、上の方にあるpackage
の名前を確認します。例:com.example.vskfiretv.mystreamz
MD5署名 この署名は、アプリを検証するために使用されます。MD5署名は、16個の16進数をコロンで区切って並べた形式でなければなりません。例: 02:6C:8B:83:77:91:39:C3:E8:C6:45:AC:6A:CE:B2:5B
この値は、前のセクション(鍵からのMD5値とSHA-256値の取得)で抽出したものです。SHA256署名 この署名は、アプリを検証するために使用されます。SHA-256署名は、32個の16進数をコロンで区切って並べた形式でなければなりません。例: 12:8F:C1:5D:3D:E9:BD:00:E0:ED:77:B3:84:71:AB:8F:6E:7D:C0:9E:E5:FE:64:EF:8F:BD:DA:EF:77:1F:E8:5E
この値は、前のセクション(鍵からのMD5値とSHA-256値の取得)で抽出したものです。 - [新しいキーを生成] をクリックします。
-
[APIキー] の下の [表示] をクリックして、APIキーをコピーし、アクセスしやすい場所に保存します。
注: アプリに複数のバージョン(複数のテストバージョンと1つの実稼働バージョンなど)があり、それぞれ署名やパッケージ名が異なる場合は、バージョンごとに固有のAPIキーが必要です。アプリの [Android/Kindleの設定] から [APIキーを追加する] ボタンをクリックして、バージョンごとにキーを作成します。同じセキュリティプロファイルを複数のアプリに使用することができます。セキュリティプロファイル内で、複数のAPIキーを追加して、それぞれのキーを別々のアプリと関連付けることができます。 - [API Key Details] ウィンドウを閉じます。
Fire TVプロジェクトへのAPIキーの追加
セキュリティプロファイルから生成したAPIキーをFire TVプロジェクトに追加します。これにより、アプリでAlexaからのメッセージを受け取れるようになります。APIキーをアプリに追加するには、次の手順を実行します。
- Android StudioでFire TV対応アプリのプロジェクトを開きます。
- プロジェクトの
assets
フォルダにapi_key.txtという名前のファイルを作成します(アプリにassetsフォルダとこのファイルがない場合は、フォルダとファイルを作成します)。 このファイルは、必ずassetsフォルダに配置するようにしてください。 api_key.txt
ファイルにAPIキーを挿入します。これ以外のデータは含めないでください。
サンプルファイルには既にこの
api_key.txt
ファイルが用意されています。Shiftキーを2回押してファイル名を入力すると、すぐにファイルを見つけることができます。<INSERT YOUR API KEY HERE>
という文字列をAPIキーに置き換えます。アプリへのセキュリティプロファイルの関連付け
アプリにセキュリティプロファイルを関連付ける必要があります。これにより、Fire TVでアプリが承認されるようになります。アプリにセキュリティプロファイルを関連付けるには、次の手順を実行します。
-
必要に応じて、https://developer.amazon.com/ja/にログインし、次のいずれかの操作を行います。
- 対象が既存のアプリの場合は、[アプリ&サービス] > [マイアプリ] を開きます。次に、アプリを選択します。
- サンプルアプリ用の新しいテストアプリを作成する場合は、[新規アプリを追加] > [Android] をクリックします。[新規アプリの申請] 画面で必要なフィールド(アプリタイトル、カテゴリーなど)に入力し、[保存] をクリックします。
- 左側のサブタブの列で、[アプリサービス] タブをクリックします。
- [セキュリティプロファイル] セクションで、[既存のセキュリティプロファイルを選択するか、新規作成します] を展開します。
-
[セキュリティプロファイル] ドロップダウンが表示されるので、先ほど作成したセキュリティプロファイルを選択し、[セキュリティプロファイルを有効にする] をクリックします。
「セキュリティプロファイル "{名前}" がアプリに対して有効になりました」という確認メッセージと、関連付けられたセキュリティプロファイルの詳細が表示されます。
アプリにセキュリティプロファイルをいったん関連付けると、そのセキュリティプロファイルの関連付けを削除または変更することはできません。
開発者コンソールで使用する署名付きAPKの生成
署名付きAPKを生成して開発者コンソールにアップロードする必要があります。それにより、後の手順でライブアプリテスト(LAT)にアプリを申請できるようになります。ここで生成するAPKは、デバッグ用APKではなく、リリース用APKにする必要があります。Android Studioで署名付きAPKを生成するには、次の手順を実行します。
- Android Studioで署名付きのリリース用APKを生成するには、[Build] メニューの [Generate Signed Bundle / APK] をクリックします。[APK] を選択し、[Next] をクリックします(ここでデバッグ用APKを生成しないでください。開発者コンソールで承認されなくなります)。
- 前に設定した署名キーと同じものを選択します。[Next] をクリックします。
- 目的の保存先フォルダ(Android StudioがビルドしたAPKを生成する場所)を選択します。リリースビルドを選択します(デバッグビルドはAmazonアプリストアで却下されます)。[V1 (Jar Signature)] チェックボックスをオンにします。[Finish] をクリックします。
-
Android Studioがプロジェクトをビルドすると、小さなメッセージウィンドウが表示され、作成されたAPKの保存先フォルダを開くための [locate] リンクが示されます。[locate] をクリックして保存先フォルダを開くと、APKに簡単にアクセスできます。
このウィンドウが非表示になった場合は、右下隅の [Event Log] タブをクリックすると情報を確認できます。プロジェクト内の場所はapp/releaseで、デフォルトのファイル名は
app-release.apk
です。
開発者コンソールへのAPKのアップロード
次に、生成した署名付きリリースAPKを開発者コンソールにアップロードします。
APKをアップロードするには、次の手順を実行します。
- 必要に応じて、開発者コンソールにログインし、ダッシュボードに移動します。
- [アプリ&サービス] > [マイアプリ] に移動します。
- [新規アプリを追加] ボタンをクリックし、[Android] を選択します。
-
[アプリタイトル] フィールドにアプリの名前を入力し、[アプリのカテゴリー] フィールドでカテゴリーを指定します。これらのフィールドの詳細については、アプリの申請プロセスのStep 1: Upload Your App File(英語のみ)を参照してください。
重要: Alexaは、Amazonアプリストアへの申請タブにある [アプリタイトル] フィールドに基づいてアプリを認識します。たとえば、アプリに「MyStreamz」という名前を付けた場合、アプリからタイトルをリクエストすると、Alexaは「MyStreamzから<ビデオタイトル>を取得します」と応答します。 Alexaは、Androidプロジェクト内のファイルからアプリ名を取得するのではありません。 - [保存] をクリックします。
-
[Upload Your App File] 画面で、保存先フォルダから [Upload your app file] ボックスにAPKをドラッグし、その他の必須フィールドに情報を入力します。
この画面の詳細については、Step 1: Upload Your App File(英語のみ)を参照してください。
-
[サポート言語] セクションで、いずれかのチェックボックス(英語など)をオンにします。
その他の詳細情報は、次の手順でアプリの申請についてのガイドに従って入力します。ここでは、セキュリティプロファイルを関連付けるためにアプリが必要なだけです。セキュリティプロファイルにはパッケージ名が必要です。
すべてのアプリ申請情報の入力
アプリの申請画面で、必須の情報をすべて入力します。この時点では、Amazonアプリストアにアプリを申請しないでください。情報の入力プロセスは次のとおりです。
-
各画面で必須の情報を入力します。フィールドの詳細については、Amazonアプリストアにアプリを申請する方法を参照してください。
ヒント: 申請ワークフローでは、画像アセットをアップロードする必要があります。必要に応じてサンプル画像をダウンロードできます。 -
各画面への入力が完了すると、サイドバーの対応する画面名に緑色のチェックマークが表示されます。[Upload your app file]、[Target your app]、[Appstore details] の各画面に緑色のチェックマークが付いたことを確認してください。
ライブアプリテスト(LAT)へのアプリの申請(新規アプリのみ)
Amazonアプリストアへのアプリの申請は必須ではありませんが、新しいアプリの場合やサンプルアプリを使用している場合は、そのアプリをライブアプリテスト(LAT)に申請する必要があります。アプリをLATに申請すると、Amazonのサーバーがアプリのパッケージ名をカタログにマッピングできるようになります。サポート対象の機能であるRemoteVideoPlayerのcatalogs
プロパティではパートナーIDを指定しますが、AmazonはアプリタイトルとASINのマッピングからアプリのカタログを取得します。このマッピングを実行するには、アプリのLATを実行するか、またはアプリが本番環境にある必要があります。
アプリのLATを開始するには、次の手順を実行します。
- 開発者コンソールで、[アプリ&サービス] > [マイアプリ] に移動し、対象のアプリをクリックします。
- 左側のサイドバーの [ライブアプリテスト] をクリックします。
-
このアプリのテストを初めて設定する場合は、[新規ライブアプリテストを作成] をクリックします。
以前に設定したことがある場合は、ライブアプリテストのダッシュボードが表示されます。[新しいテスト] をクリックします。
-
すべての必須フィールドに入力し、[アプリを申請] をクリックします。LATの開始方法の詳細については、ライブアプリテストの作成を参照してください。
このLATではテスターを追加する必要はありません。このLATの申請は、Amazonがカタログとパッケージのマッピングを行えるようにすることだけを目的としているためです。アプリのLATバージョンを使用するわけではないため、LATのEメールは無視して構いません。
注: アプリをLATにアップロードしてテストを行う必要はありません。アプリのテストは、Android StudioからADBを使用してFire TVデバイスに接続することにより実施します。アップデートごとにLATの申請を行って、アプリの変更のテストを行う必要はありません(ただし、LATを使用したテストは無料で行うことができます)。警告: LATに申請したアプリの名前は、変更しないでください。名前を変更すると、カタログとアプリのマッピングが無効になります。この要件は、サンプルアプリについても同様です。Amazon開発者コンソールでアプリタイトルの値を変更すると、バックエンドでのカタログとサンプルアプリのマッピングが無効になり、Alexaがリクエストに応答できなくなります。
次のステップ
次の 手順10: 発話をテストしてログを確認するに進みます。
Last updated: 2023年10月12日