開発者コンソール

手順5: アプリに署名してセキュリティプロファイルを構成する

手順5: アプリに署名してセキュリティプロファイルを構成する

このページでは、アプリに署名し、アプリの認証に使用するAPIキーを作成する手順について説明します。

開発中のアプリの署名について

鍵は、キーストアに格納されます。Androidアプリの場合、通常はデバッグ用のキーストアとリリース用のキーストアがあります。

アプリの署名とはハッシュ値のことであり、どのAndroidアプリでも、ビルド時にこのハッシュ値が適用されます。開発中のアプリをAndroid Studioから実行する場合、デフォルトでは、Androidがデバッグ鍵を使用してアプリの署名を自動的に行います。

しかし、ビデオスキルを含むプロジェクトの場合は、Android Studioから提供されるデフォルトのデバッグ鍵をFire TVが受け入れないため、アプリが機能しないことがあります。ビデオスキルを含むアプリを開発するときは、ローカルでの開発でも、自分でAPKに署名を行い、署名のMD5値とSHA-256値を特定のAmazonセキュリティプロファイルに関連付ける必要があります。そのセキュリティプロファイルから提供されるAPIキーをアプリに組み込むことで、Amazon Device Messaging(ADM)からの通信を承認できます。

Android Studioでデバッグ署名鍵をカスタマイズし、Fire TV対応アプリに適切に署名するには、以下の手順に従います。

アプリの署名に使用する鍵の作成

プレリリース(デバッグ)版アプリの場合は、APIキーを作成してプロジェクトに保存する必要があります。APIキーをアプリに追加する方法は以下のとおりです。

  1. プロジェクトのassetsフォルダにapi_key.txtという名前のファイルを作成します。このファイルは、必ずassetsフォルダに配置するようにしてください。
  2. api_key.txtファイルにAPIキーを挿入します。これ以外のデータは含めないでください。

リリース(実稼働)版アプリで、Appstore SDKを使用している場合は、そのアプリ用に追加のAPIキーを作成する必要があります。また、以前のIAP SDK v2.0を使用していて、独自の証明書を使用してアプリに署名する場合も、そのアプリ用のAPIキーを作成する必要があります。これに対して、IAP SDK v2.0を使用していて、アプリへの署名をAmazonに任せる場合は、新たなAPIキーを作成する必要はありません。概要については、以下の表を参照してください。

既存のアプリのAPIキーを作成するには、開発者コンソールでAmazonアプリストアの証明書ハッシュ値を確認してください。[マイアプリ] に移動してアプリを選択し、[アプリファイルをアップロード] > [Amazonアプリストアの証明書ハッシュ] の順にクリックします。

アプリの署名方法に関するクイックリファレンスを以下に示します。

Appstore SDKの使用 リリース版アプリへの自己署名 実稼働版/開発版 アプリの署名方法
実稼働版 APIキーは自動的に生成され、リリース版アプリに挿入されるため、何もする必要はありません。
実稼働版 独自のリリース版証明書ハッシュを使用して開発者側でAPIキーを作成し、それをアセットに追加する必要があります。
実稼働版 開発者コンソールから取得したリリース版証明書ハッシュを使用して開発者側でAPIキーを作成し、それをアセットに追加する必要があります。
実稼働版 独自のリリース版証明書ハッシュを使用して開発者側でAPIキーを作成し、それをアセットに追加する必要があります。
任意 任意 開発版 独自のリリース版証明書ハッシュを使用して開発者側でAPIキーを作成し、それをアセットに追加する必要があります。

最初の手順として、アプリの署名に使用する鍵を作成します。鍵は、キーストアに格納されます。一般的なAndroidアプリには、デバッグ用のキーストアとリリース用のキーストアがあります。署名に使用する鍵を作成するには、次の手順を行います。

  1. アプリの署名に使用するカスタムデバッグ鍵(デフォルトのAndroidデバッグ鍵ではない鍵)が既にある場合は、その鍵のキーストアの場所、キーストアのパスワード、鍵のエイリアス、鍵のパスワードを確認してください。確認できたら、次のセクション( カスタム鍵を使用してアプリに自動的に署名する方法)に進みます。
  2. カスタムデバッグ鍵がない場合は、Android Studioの上部のメニューの [Build] をクリックし、[Generate Signed Bundle / APK] をクリックします。
  3. [Generate Signed Bundle or APK] ダイアログボックスで、[APK] を選択します。[Next] をクリックします。
  4. [Create new] をクリックし、新しい鍵の各フィールドを入力します。詳細については、Androidドキュメントのアップロード鍵とキーストアを生成するを参照してください。証明書フォームの1つ以上のフィールドに入力します。入力し終えたら、[OK] をクリックします。
  5. キーストアの場所、キーストアのパスワード、鍵のエイリアス、鍵のパスワードをメモしておきます。この情報は次のセクションで必要になります。

    署名鍵の作成
    署名鍵の作成

    詳細については、Androidドキュメントのアップロード鍵とキーストアを生成するを参照してください。

  6. APK生成用のほかのウィザード画面には進まずに、ダイアログボックスを閉じます。次の手順に進みます。

カスタム鍵を使用してアプリに自動的に署名する方法

前の手順(アプリの署名に使用する鍵の作成)では、アプリに署名するためのカスタム鍵を作成しました。この手順では、Android Studioのデバッグプロファイルで使用する鍵を更新します。デバッグプロファイルで使用する署名キーをカスタマイズするには、次の手順を実行します。

  1. Android StudioでFire TV対応アプリのプロジェクトを開きます。
  2. [File] > [Project Structure] の順にクリックします。
  3. 左側の [Modules] をクリックします。
  4. 上部の [Signing Configs] タブをクリックします。
  5. [+] ボタンをクリックし、firetvという新しい構成を作成します。
  6. [Store File][Store Password][Key Alias][Key Password] を選択して新しいfiretv署名構成プロファイルを設定します。前のセクション(アプリの署名に使用する鍵の作成)でメモしておいた情報を設定してください。

    署名鍵の構成
    署名鍵の構成
  7. [Apply] をクリックしてから、[OK] をクリックしてダイアログボックスを閉じます。更新された署名情報がプロジェクトに反映されます。
  8. 左側のペインで [Gradle Scripts] を展開し、build.gradle (Module: app)ファイルをダブルクリックします。
  9. 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] メニューから簡単に取得できます。取得するには、次の手順を実行します。

  1. Android Studioで、右側の [Gradle] サイドペインをクリックして展開します。
  2. app > Tasks > androidを展開します。
  3. signingReportをダブルクリックします。

    Android StudioのsigningReport
    Android StudioのsigningReport

    Gradleによって、キーストアからMD5値とSHA-256値が読み取られ、下のペインに表示されます。

    署名鍵
    Android Studioに表示される署名鍵
  4. 必要なのは、MD5値とSHA-256値だけです。このMD5値とSHA-256値を、アクセスしやすい場所にコピーしておきます。これらの値は、次の手順で説明するセキュリティプロファイルの作成時に必要になります。

keytoolユーティリティ(Javaに含まれている、鍵と証明書の管理ツール)を使用して、MD5値とSHA-256値を抽出することもできます。詳細については、下のボタンをクリックして展開してください。

セキュリティプロファイルの作成

セキュリティプロファイルによって、セキュリティ認証情報をアプリに関連付けることができます。このセキュリティプロファイルを開発者ポータルで作成し、作成したプロファイルの構成にMD5値とSHA-256値を追加します。これにより、アプリとセキュリティプロファイルの間に認証が作成され、Alexa Client Libraryの実行が可能になります。

セキュリティプロファイルを作成するには、次の手順に従います。

  1. https://developer.amazon.com/ja/にログインし、[開発者コンソール] をクリックします。Amazonアプリストアの開発者コンソールが開きます(Alexaの開発者コンソールではありません)。
  2. [設定] をクリックし、1段下のメニューから [セキュリティプロファイル] をクリックします。
  3. [セキュリティプロファイルを新規作成] ボタンをクリックします。
  4. [セキュリティプロファイル名] フィールドに、わかりやすい名前を指定します。たとえば、アプリと同じ名前にすることができます。[セキュリティプロファイルの説明] フィールドには、必要な説明を入力します。

    セキュリティプロファイルの名前を指定する
    セキュリティプロファイルの名前を指定する
  5. [保存] をクリックします。
  6. [Android/Kindleの設定] タブをクリックします。

    セキュリティプロファイルを構成する
    セキュリティプロファイルを構成する
  7. 次のフィールドの値を入力します。

    フィールド 説明
    APIキー名 これは、アプリの正式名称である必要はありません。この名前は、セキュリティプロファイルに登録されている複数のアプリやウェブサイトから、このAndroidアプリを識別するために使用されます。
    パッケージ これは、Androidプロジェクトのパッケージ名と一致する必要があります。Android Studioで、appフォルダ、manifestsの順に展開し、AndroidManifest.XMLをダブルクリックします。上部にパッケージ名が表示されます。例:com.example.vskfiretv
    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値を取得する方法)で抽出したものです。
  8. [新しいキーを生成] をクリックします。
  9. [APIキー] 列の [表示] をクリックし、APIキーをコピーします。ビデオIDなどの情報を保存したファイルに、このAPIキーも保存します。

    APIキーの詳細
    APIキーの詳細
  10. [APIキーの詳細] ウィンドウを閉じます。次に、[ウェブ設定] タブをクリックします。
  11. クライアントIDクライアントシークレットをメモにコピーしておきます。クライアントIDとクライアントシークレットは、Lambdaコードを仕上げるときに使用します。

    クライアントIDとクライアントシークレットのコピー
    クライアントIDとクライアントシークレットのコピー

セキュリティプロファイルのLogin with Amazonを有効にする方法

セキュリティプロファイルのLogin with Amazonを有効にする必要があります。

  1. 開発者コンソールで、上部のメニューから [Login with Amazon] をクリックします。
  2. Login with Amazonコンソールの [セキュリティプロファイルを選択] ドロップダウンメニューで、使用するセキュリティプロファイルを選択します。

    セキュリティプロファイルのLogin with Amazonを有効にする
    セキュリティプロファイルのLogin with Amazonを有効にする
  3. [確認する] ボタンをクリックします。
  4. [同意の画面の情報を入力] ダイアログボックスで、必要に応じて [プライバシー規約同意書URL][同意のロゴ画像] を追加し、[保存] をクリックします(テストするだけの場合は、プライバシーURLには仮に自分のウェブサイトを入力しても構いません)。

    ロゴは、ユーザーがウェブサイトやモバイルアプリにログインするときに、ログイン画面と同意画面に表示されます。ロゴのサイズは150x150pxの正方形で、形式はPNGにする必要があります。ロゴのサイズが異なる場合は、表示に合わせてスケーリングされます。

Fire TVプロジェクトにAPIキーを追加する方法

セキュリティプロファイルから生成したAPIキーをFire TVプロジェクトに追加します。これにより、アプリがAmazon Device Messaging(ADM)からメッセージを受信できるようになります。APIキーをアプリに追加する方法は以下のとおりです。

  1. Android StudioでFire TV対応アプリのプロジェクトを開きます。
  2. プロジェクトのassetsフォルダにapi_key.txtという名前のファイルを作成します。このファイルは、必ずassetsフォルダに配置するようにしてください。

    サンプルアプリ

    サンプルアプリには、既にapi_key.txtという名前のファイルがあります。Spaceキーを2回押してこのファイルを検索し、ファイルの内容を削除して、APIキーを貼り付けます。
  3. api_key.txtファイルにAPIキーを挿入します。これ以外のデータは含めないでください。

開発者コンソールで使用する署名付きAPKを生成する方法

特定のアプリパッケージ名を持つセキュリティプロファイルとアプリを関連付けることができるように、APKを生成して開発者コンソールにアップロードする必要があります。Android Studioで署名付きAPKを生成するには、次の手順を実行します。

  1. Android Studioで署名付きAPKを生成するには、[Build] メニューの [Generate Signed Bundle / APK] をクリックします。[APK] を選択し、[Next] をクリックします。
  2. 前に設定した署名キーと同じものを選択します。[Next] をクリックします。
  3. 目的の保存先フォルダ(Android StudioがビルドしたAPKを生成する場所)を選択します。リリースビルドを選択します(デバッグビルドはAmazonアプリストアで却下されます)。[V1 (Jar Signature)] チェックボックスをオンにします。[Finish] をクリックします。
  4. Android Studioがプロジェクトをビルドすると、小さなメッセージウィンドウが表示され、作成されたAPKの保存先フォルダを開くための [locate] リンクが示されます。[locate] をクリックして保存先フォルダを開くと、APKに簡単にアクセスできます。

    生成されたAPKの場所を確認
    生成されたAPKの場所を確認

    このウィンドウが非表示になった場合は、右下隅の [Event Log] タブをクリックすると情報を確認できます。プロジェクト内の場所はapp/releaseで、ファイル名はapp-release.apkです。

開発者コンソールにAPKをアップロードする方法

次に、生成した署名付きリリースAPKを開発者コンソールにアップロードします。APKをアップロードするには、次の手順を実行します。

  1. 開発者コンソールにログインし、ダッシュボードに移動します(右上隅にある [開発者コンソール] リンクをクリックします)。
  2. [アプリ&サービス] から [マイアプリ] をクリックします。
  3. [新規アプリを追加] ボタンをクリックし、[Android] を選択します。
  4. [アプリタイトル] フィールドにアプリの名前を入力し、[アプリのカテゴリー] フィールドでカテゴリーを指定します。これらのフィールドの詳細については、アプリの申請プロセスのStep 1: アプリファイルをアップロードするを参照してください。
  5. [保存] をクリックします。
  6. [アプリファイルをアップロード] 画面で、保存先フォルダから [アプリファイルをアップロード] ボックスにAPKをドラッグします。ファイルがアップロードされるまで待ってから、その他の必須フィールドに情報を入力します。

    この画面の詳細については、手順1: アプリファイルをアップロードするを参照してください。

  7. [サポート言語] セクションで、いずれかのチェックボックス([英語] など)をオンにします。

    その他の詳細情報は、アプリの申請についてのガイドに従って入力します。ここでは、セキュリティプロファイルを関連付けるためにアプリが必要なだけです。セキュリティプロファイルにはパッケージ名が必要です。

アプリにセキュリティプロファイルを関連付ける方法

アプリにセキュリティプロファイルを関連付ける必要があります。これにより、Fire TVでアプリが承認されるようになります。アプリにセキュリティプロファイルを関連付けるには、次の手順を実行します。

  1. 開発者コンソールでアプリを表示するには、https://developer.amazon.com/ja/にログインして [アプリ&サービス] をクリックし、[マイアプリ] をクリックします。次に、アプリを選択します。
  2. 左側のサブタブの列で、[アプリサービス] タブをクリックします。
  3. [セキュリティプロファイル] セクションで、[既存のセキュリティプロファイルを選択するか、新規作成します] を展開します。[セキュリティプロファイル] ドロップダウンが表示されるので、先ほど作成したセキュリティプロファイルを選択し、[セキュリティプロファイルを有効にする] をクリックします。

    アプリにセキュリティプロファイルを選択する
    アプリにセキュリティプロファイルを選択する

    「セキュリティプロファイル "{名前}"がアプリに対して有効になりました」という確認メッセージと、関連付けられたセキュリティプロファイルの詳細が表示されます。

  4. [デバイスメッセージング] セクションで、[デバイスメッセージングを有効にする] ボタンをクリックします。

    デバイスメッセージングを有効にする
    デバイスメッセージングを有効にする
  5. Login with Amazonセクションにも、同じセキュリティプロファイルが、関連付けられたプロファイルとして表示されるはずです。

    アプリにセキュリティプロファイルをいったん関連付けると、そのセキュリティプロファイルの関連付けを削除または変更することはできません。

次のステップ

次の 手順6: Lambdaパッケージを作成・デプロイするに進みます。

問題が発生して続行できない場合は、クラウド側の統合に関するトラブルシューティングを参照してください。


Last updated: 2023年10月2日