開発者コンソール

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


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

本稼働アプリの場合、Amazon側でAmazonアカウントにひも付いたAPK署名を処理します。ただし、VSKを使用してアプリのテストを行う場合、Amazonのセキュリティプロファイルと関連付けられた署名を使用してAPKに署名する必要があります。セキュリティプロファイルにより、VSK Agent Client Libraryが認証されます。

サンプルアプリに関する注意事項

サンプルアプリを確認するだけであっても、このトピックに記載されているすべての手順を実行する必要があります。

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

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

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

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

    署名鍵の構成
    署名鍵の構成
  6. [Apply] をクリックしてから、[OK] をクリックしてダイアログボックスを閉じます。更新された署名情報がプロジェクトに反映されます。
  7. 左側のペインで [Gradle Scripts] を展開し、build.gradle (Module: app)ファイルをダブルクリックします。
  8. 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. [<アプリ名>] > [Tasks] > [android] の順に展開します。
  3. [signingReport] をダブルクリックします。

    Android Studioの [signingReport]
    Android StudioのsigningReport

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

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

Amazon開発者アカウントの作成

まだAmazon開発者アカウントを作成していない場合は、https://developer.amazon.com/ja/で、画面右上の [ログイン] をクリックしてから [Amazon Developerアカウントを作成] をクリックし、アカウントを作成します。初めての場合は、情報フィールドへの入力が必要になります。詳細については、開発者アカウントの作成を参照してください。

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

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

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

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

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

    フィールド 説明
    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値を取得する方法)で抽出したものです。
  8. [新しいキーを生成] をクリックします。
  9. [APIキー] の下の [表示] をクリックして、APIキーをコピーし、アクセスしやすい場所に保存します。

    [API Key Details] ウィンドウ
    APIキーの詳細
  10. [API Key Details] ウィンドウを閉じます。

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

セキュリティプロファイルから生成したAPIキーをFire TVプロジェクトに追加します。これにより、アプリでAlexaからのメッセージを受け取れるようになります。APIキーをアプリに追加するには、次の手順を実行します。

  1. Android StudioでFire TV対応アプリのプロジェクトを開きます。
  2. プロジェクトのassetsフォルダにapi_key.txtという名前のファイルを作成します(アプリにassetsフォルダとこのファイルがない場合は、フォルダとファイルを作成します)。 このファイルは、必ずassetsフォルダに配置するようにしてください。
  3. api_key.txtファイルにAPIキーを挿入します。これ以外のデータは含めないでください。
サンプルアプリに関する注意事項

サンプルファイルには既にこのapi_key.txtファイルが用意されています。Shiftキーを2回押してファイル名を入力すると、すぐにファイルを見つけることができます。<INSERT YOUR API KEY HERE>という文字列をAPIキーに置き換えます。

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

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

  1. 必要に応じて、https://developer.amazon.com/ja/にログインし、次のいずれかの操作を行います。

    • 対象が既存のアプリの場合は、[アプリ&サービス] > [マイアプリ] を開きます。次に、アプリを選択します。
    • サンプルアプリ用の新しいテストアプリを作成する場合は、[新規アプリを追加] > [Android] をクリックします。[新規アプリの申請] 画面で必要なフィールド(アプリタイトル、カテゴリーなど)に入力し、[保存] をクリックします。
  2. 左側のサブタブの列で、[アプリサービス] タブをクリックします。
  3. [セキュリティプロファイル] セクションで、[既存のセキュリティプロファイルを選択するか、新規作成します] を展開します。
  4. [セキュリティプロファイル] ドロップダウンが表示されるので、先ほど作成したセキュリティプロファイルを選択し、[セキュリティプロファイルを有効にする] をクリックします。

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

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

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

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

署名付きAPKを生成して開発者コンソールにアップロードする必要があります。それにより、後の手順でライブアプリテスト(LAT)にアプリを申請できるようになります。ここで生成するAPKは、デバッグ用APKではなく、リリース用APKにする必要があります。Android Studioで署名付きAPKを生成するには、次の手順を実行します。

  1. Android Studioで署名付きのリリース用APKを生成するには、[Build] メニューの [Generate Signed Bundle / APK] をクリックします。[APK] を選択し、[Next] をクリックします(ここでデバッグ用APKを生成しないでください。開発者コンソールで承認されなくなります)。
  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を開発者コンソールにアップロードします。APKをアップロードするには、次の手順を実行します。

  1. 必要に応じて、開発者コンソールにログインし、ダッシュボードに移動します。
  2. [アプリ&サービス] > [マイアプリ] に移動します。
  3. [新規アプリを追加] ボタンをクリックし、[Android] を選択します。
  4. [アプリタイトル] フィールドにアプリの名前を指定し、[アプリのカテゴリー] フィールドでカテゴリーを指定します(これらのフィールドの詳細については、アプリ申請プロセスの一般情報を入力するを参照してください)。

    [アプリタイトル] フィールド
  5. [保存] をクリックします。
  6. [APKファイル] タブをクリックします(フィールドが編集可能でない場合は、右下隅にある [編集] をクリックしてください)。
  7. APKファイルを、保存先フォルダから、開発者コンソールの [APKファイル] タブの [APKをドロップ] という表示のあるボックスにドラッグします。
  8. その他の必須フィールドを入力します。[サポート言語] のチェックボックス([英語] など)をオンにし、[海外販売に関するコンプライアンス] チェックボックスをオンにします。

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

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

    「APKのサポート対象にAmazon Fire TVデバイスが指定されていますが、必要なFire TV用アセットが追加されていません。[画像&マルチメディア] タブから必要なアセットを追加してください。」というメッセージが表示されます。 Amazonアプリストアでは、マニフェストを読み取り、このアプリがFire TV対応アプリであることを認識しています。次の手順では、不足している情報を入力します。

アプリ申請のすべてのタブへの入力

ライブアプリテストへのアプリの申請(次の手順)を行う前に、アプリの申請タブで必要な情報をすべて入力する必要があります。ただし、この時点では、Amazonアプリストアにアプリを申請しないようにしてください。各タブに入力するには、次の手順を実行します。

  1. 各タブに移動して、必要に応じて必要な情報を入力します。すべてのフィールドの詳細については、Amazonアプリストアにアプリを申請する方法を参照してください。

  2. 各タブの入力が完了すると、そのタブに緑のチェックマークが表示されます。各タブに緑のチェックマークが表示されていることを確認します。

ライブアプリテスト(LAT)へのアプリの申請(新規アプリのみ)

アプリをAmazonアプリストアに申請する必要はありませんが、新規アプリがある場合や、サンプルアプリを試してみる場合、アプリをライブアプリテスト(LAT)に申請する必要があります。これにより、Amazonのバックエンドでパッケージ名とカタログのマッピングができるようになります。アプリのLATを行うことにより、Amazonのバックエンドでこの重要な処理を行うことができます(サポート対象の機能であるRemoteVideoPlayercatalogsプロパティでパートナーIDを指定していても、Amazonでは、実際にはアプリタイトルとASINのマッピングによりアプリのカタログを取得します。しかし、アプリのLATを行うか、アプリを本番環境に配置しないと、このマッピングを行うことはできません)。

アプリのLATを開始するには、次の手順を実行します。

  1. 開発者コンソールで、[アプリ&サービス] > [マイアプリ] を選択し、対象のアプリをクリックします。
  2. 左のサイドバーの [ライブアプリテスト] をクリックします。
  3. [最初のテストを開始] をクリックし、[OK] をクリックして、新しいテストの作成を確認します。

    アプリのタブの表示にリダイレクトされます。ここで、LATに申請するアプリのバージョンを調整することができます。ただし、ここでは特に調整を行う必要はありません。

  4. 左下にある [ダッシュボードに移動] をクリックして、LATダッシュボードに戻ります。
  5. [アクション] 列で、縦に並んだドットをクリックし、[申請] をクリックします。申請の確認のダイアログボックスで、[OK] をクリックします。

    このLATではテスターを追加する必要はありません。このLATの申請は、Amazonのバックエンドシステムでカタログとパッケージのマッピングを行えるようにすることだけを目的としているためです。アプリのLATバージョンを使用するわけではないため、LATのEメールは無視して構いません。

次のステップ

次の 手順10: 発話をテストしてログを確認するに進みます。