開発者コンソール

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


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

本稼働アプリの場合、Amazon側でAmazonアカウントにひも付いたAPK署名を処理します。ただし、ビデオスキルを組み込んだアプリをテストするには、APKに署名し、その署名をAmazonセキュリティプロファイルに関連付ける必要があります。

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

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

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

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

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

最初の手順として、アプリの署名に使用する鍵を作成します。鍵は、キーストアに格納されます。一般的な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セキュリティプロファイルに関連付けられた鍵を使用するということです。この原則が守られるのであれば、アプリに署名するプロセスが上記の手順と異なっても構いません(後のセクションで、この鍵をセキュリティプロファイルに関連付けます)。

    実稼働用のアプリについては、Amazonアプリストアを使用してアプリに署名すると(デフォルト)、APIキーがAmazonアプリストアによって自動的に提供されます。そのため、Amazonアプリストアにアプリを申請する際には、どの鍵が使用されていても構いません。Amazonアプリストアによって独自の署名鍵が適用されます。ただし、独自の証明書を使用して実稼働用のアプリに署名する場合(一部のパートナーに許可されているワークフロー)は、実稼働用のアプリに追加のAPIキーを作成する必要があります。

鍵から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. [アプリタイトル] フィールドにアプリの名前を指定し、[アプリのカテゴリー] フィールドでカテゴリーを指定します(これらのフィールドの詳細については、アプリ申請プロセスの一般情報を入力するを参照してください)。
  5. [保存] をクリックします。
  6. [APKファイル] タブをクリックします(フィールドが編集可能でない場合は、右下隅にある [編集] をクリックしてください)。
  7. APKファイルを、保存先フォルダ(APKファイルが生成されている場所)から、開発者コンソールの [APKファイル] タブの [APKをドロップ] という表示のあるボックスにドラッグします。サンプルアプリの生成されたファイル名は、「Wait for the file to upload」になります。
  8. その他の必須フィールドを入力します。[サポート言語] のチェックボックス([英語] など)をオンにし、[海外販売に関するコンプライアンス] チェックボックスをオンにします。

    [APKファイル] タブの詳細については、APKファイルをアップロードするを参照してください。この手順はすべて、アプリの申請についての説明に従って後から行うことができます。ここでは、セキュリティプロファイルを関連付けるためにアプリが必要なだけです。セキュリティプロファイルにはパッケージ名が必要です。

  9. [保存] をクリックします。

    「APKのサポート対象にAmazon Fire TVデバイスが指定されていますが、必要なFire TV用アセットが追加されていません。[画像&マルチメディア] タブから必要なアセットを追加してください。」というメッセージが表示されます。 Amazonアプリストアでは、マニフェストを読み取り、このアプリがFire TV対応アプリであることを認識しています。この時点では、これらの画像アセットを追加しなくても構いません(必要な画像アセットの詳細については、後でこちらを参照してください)。

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

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

  1. 開発者コンソールでアプリを表示するには、https://developer.amazon.com/ja/にログインして [アプリ&サービス] をクリックし、[マイアプリ] をクリックします。次に、アプリを選択します。
  2. アプリ名のすぐ下にあるメニューから、[アプリサービス] タブをクリックします。

    アプリサービスの選択
    アプリサービスの選択
  3. [セキュリティプロファイル] セクションで、[既存のセキュリティプロファイルを選択するか、新規作成します] を展開します。[セキュリティプロファイル] ドロップダウンが表示されるので、先ほど作成したセキュリティプロファイルを選択し、[セキュリティプロファイルを有効にする] をクリックします。

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

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

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

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

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

次のステップ

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

問題が発生して続行できない場合は、トラブルシューティングを参照してください。