步骤5: 对应用签名并配置安全配置文件(VSK Fire TV)
此页面将引导您完成对应用签名并创建API密钥以对其进行授权的过程。
- 关于在开发过程中对应用签名
- 创建一个密钥以对您的应用签名
- 使用自定义密钥自动对您的应用签名
- 从您的密钥中获取MD5和SHA-256值
- 创建安全配置文件
- 为您的安全配置文件启用Login with Amazon
- 将API密钥添加到Fire TV项目中
- 为开发者控制台生成签名的APK
- 将您的APK上传到开发者控制台
- 将安全配置文件附加到您的应用
- 后续步骤
关于在开发过程中对应用签名
用于对应用签名的密钥存储在密钥库中。对于Android应用,通常有一个调试密钥库和一个发布密钥库。
您的应用的签名是一个哈希值,它在构建时应用于每个Android应用。如果您从Android Studio运行应用(在开发应用时),默认情况下,Android会自动使用调试密钥对您的应用签名。
然而,对于包含视频技能的项目,Fire TV不会接受Android Studio提供的此默认调试密钥,并且您的应用也不会运行。即使在使用视频技能的应用的本地开发过程中,您也必须使用MD5和SHA-256值与亚马逊安全配置文件相关的签名对APK进行签名。安全配置文件将为您提供一个API密钥,您可以将该密钥合并到应用中,以授权通过Amazon Device Messaging进行通信。
按照以下步骤在Android Studio中自定义调试签名密钥,以便为Fire TV正确对您的应用签名。
创建一个密钥以对您的应用签名
对于应用的预发布或“调试”版本,必须创建API密钥并将其存储在项目中。要在您的应用中添加API密钥:
- 在项目的assets文件夹内创建一个名为
api_key.txt
的文件。必须将该文件放置在此特定目录中。 - 插入API密钥作为此
api_key.txt
文件中的唯一数据。
对于应用的发布或“生产”版本,如果应用使用Appstore SDK,则必须为应用的发布版本创建额外的API密钥。如果使用较旧的IAP SDK v2.0,并使用自己的证书为应用签名,您还必须为应用的发布版本创建API密钥。反之,如果您使用IAP SDK v2.0并授权亚马逊对您的应用签名,则无需创建额外的API密钥。如需查看摘要,请参阅下表:
可以在开发者控制台中查找亚马逊应用商店证书哈希值,为现有应用创建API密钥。转到我的应用程序 > 选择您的应用 > 上传您的应用文件> 应用商店证书哈希值。
以下是您应该如何对应用签署的快速参考:
使用Appstore SDK | 发布应用自签名 | 生产或开发版本 | 如何对您的应用签名 |
---|---|---|---|
生产 | 为发布应用自动生成和注入API密钥,无需执行其他任何操作。 | ||
生产 | 开发者必须使用自己的发布证书哈希值创建API密钥,并将其添加到资产中。 | ||
生产 | 开发者必须在开发者控制台中使用发布证书哈希值创建API密钥,并将其添加到资产中。 | ||
生产 | 开发者必须使用自己的发布证书哈希值创建API密钥,并将其添加到资产中。 | ||
任何 | 任何 | 开发 | 开发者必须使用自己的发布证书哈希值创建API密钥,并将其添加到资产中。 |
第一步是创建一个密钥来对应用进行签名。用于对应用签名的密钥存储在密钥库中。对于Android应用,通常有一个调试密钥库和一个发布密钥库。要创建签名密钥,请执行以下操作:
- 如果您已经有一个自定义调试密钥(而不是默认的Android调试密钥)用来对应用签名,请确保您知道密钥库位置、密钥库密码、密钥别名和密钥密码。然后跳至下个部分: 使用密钥自动对应用签名.
- 如果您还没有自定义调试密钥,请打开Android Studio,然后单击顶部导航中的Build(构建),然后选择Generate Signed Bundle/APK(生成签名的Bundle/APK)。
- 在“Generate Signed Bundle or APK”对话框中,选择APK。然后单击下一步。
- 单击Create new(新建)并定义新密钥的字段。有关更多详细信息,请参阅Android文档中的生成上传密钥和密钥库。至少填写证书表单中的一个字段。完成后,单击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将您的项目与更新的签名信息同步。
- 在左窗格中,展开Gradle Scripts(Gradle脚本)并双击您的
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 } }
现在,您的构建将使用API密钥进行签名,该密钥将与亚马逊开发者安全配置文件中使用的API密钥相匹配(您将在接下来的步骤中创建该配置文件)- 创建安全配置文件。Fire TV将对应用授权以进行安装。
有关对应用签名的更多信息,请参阅Android文档中的配置构建过程以自动对应用签名。
您可以变更上文的应用签名过程,只要记住下面所述的一般原则即可:当您在Fire TV上开发和运行应用时,用一个与亚马逊上的安全配置文件相关的密钥来对您的应用签名,而非使用您的默认Android Studio调试密钥。(您将在下一部分中将此密钥与安全配置文件相关联。)
从您的密钥中获取MD5和SHA-256值
您需要从签名密钥中获取MD5和SHA-256值,然后才能从Amazon安全配置文件生成API密钥(该配置文件将在下一部分中介绍)。您可以通过以下操作从Android Studio中的Gradle菜单中轻松地获取这些值:
- 在Android Studio中,请单击右侧的Gradle侧窗格并将其展开。
- 展开app > Tasks > android(应用>任务>Android)。
-
双击signingReport。
Gradle读取您的密钥库,并在底部窗格中显示MD5和SHA-256值。
- 仅需要MD5和SHA-256值。将这些MD5和SHA-256值复制到一个方便的位置,因为您需要用它们来创建安全配置文件(在下个步骤中描述)。
您可使用 keytool实用工具(作为Java一部分的密钥和证书管理工具)来提取MD5和SHA-256值。展开下面的按钮可查看详细信息。
创建安全配置文件
安全配置文件将您的安全凭证与应用关联。您将在开发者门户中创建此安全配置文件,并在配置文件的配置中包含MD5和SHA-256值。这将在您的应用程序和安全配置文件之间创建授权,并允许Alexa客户端库运行。
要创建安全配置文件,请执行以下操作:
- 登录https://developer.amazon.com并单击Developer Console(开发者控制台)。由此您可来到亚马逊应用商店开发者控制台(不是Alexa开发者控制台)。
- 单击设置,然后从子选项卡第二行单击安全配置文件。
- 单击创建新的安全配置文件按钮。
-
在安全配置文件名称字段中,为您的安全配置文件取一个易记的名称(例如您应用的名称)。还可以根据需要在安全配置文件描述字段中输入描述。
- 单击保存。
-
单击安卓/Kindle设置选项卡。
-
填写以下字段:
字段 描述 API密钥名称 该名称不一定是您应用的官方名称。它只是在注册到您的安全配置文件的应用和网站中标识这个特定的Android应用。 软件包 此项必须与您的Android项目的软件包名称相匹配。在Android Studio中,展开app文件夹,展开清单,然后双击AndroidManifest.XML查找顶部附近的 软件包
名称。例如:com.example.vskfiretv
MD5签名 此签名用于验证您的应用。MD5签名必须采用16个十六进制对的形式,用冒号分隔。例如: 02:6C:8B:83:77:91:39:C3:E8:C6:45:AC:6A:CE:B2:5B
您在上一部分从您的密钥中获取MD5和SHA-256值中提取了该值。SHA256签名 此签名用于验证您的应用。SHA-256签名必须采用32个十六进制对的形式,用冒号分隔。例如: 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 Key(API密钥)下方,单击Show(显示)并复制API密钥。将其保存在存储视频ID和其他详细信息的同一文件中。
注意: 如果应用的不同版本具有不同的签名或软件包名称,例如一个或多个测试版本和一个生产版本,则每个版本都需要自己的API密钥。在应用的“安卓/Kindle设置”中,单击添加API密钥按钮为应用创建其他密钥(每个版本一个)。 - 关闭API Key Details窗口。然后单击Web设置选项卡。
-
将客户端ID和客户端密钥复制到您的注释中。当您完成Lambda代码时,您将使用客户端ID和客户端密钥。
为您的安全配置文件启用Login with Amazon
您需要为自己的安全配置文件启用Login with Amazon
- 在开发者控制台中,单击顶部导航栏中的Login with Amazon。
-
在Login with Amazon控制台上,从选择安全配置文件下拉菜单选择您的安全配置文件。
- 单击确认按钮。
-
在“输入同意信息”对话框中,根据需要添加同意隐私声明URL以及同意徽标图像,然后单击保存。(如果你只是在测试,您可以暂时输入您网站的隐私URL。)
当用户登录您的网站或移动应用时,标志会显示在登录和同意屏幕上。它应该是一个正方形的标志,大小为150像素x150像素,格式为PNG。如果您的标志尺寸有所不同,会将其缩放至适配。
将API密钥添加到Fire TV项目中
您需要将安全配置文件中的API密钥添加到Fire TV项目中。这将使您的应用能够接收来自Amazon Device Messaging (ADM)的消息。要在您的应用中添加API密钥:
- 在Android Studio中,打开您的Fire TV应用项目。
-
在项目的
assets
文件夹内创建一个名为api_key.txt的文件。必须将该文件放置在此特定目录中。示例应用
示例应用已有名为api_key.txt
的文件。按空格键两次并搜索该文件,然后删除其内容并粘贴到API密钥中。 -
插入API密钥作为此
api_key.txt
文件中的唯一数据。重要须知: 如果API密钥包含空格或换行符,则ADM将不能识别该密钥。
为开发者控制台生成签名的APK
您需要生成APK并将其上传到开发者控制台,这样就可以将您的应用和您的安全配置文件与特定应用的软件包名称相关联。要从Android Studio生成签名的APK:
- 在Android Studio中,通过转到Build(构建),然后选择Generate Signed Bundle/APK(生成签名的Bundle/APK),生成一个已签名的APK。选择APK,然后单击下一步。
- 选择与您之前配置的签名密钥相同的签名密钥。然后单击下一步。
- 选择所需的目标文件夹(这是Android Studio将生成构建的APK的位置)。选择release(发布)构建(注意亚马逊应用商店将拒绝调试构建)。选择V1 (Jar Signature)(V1(Jar签名))复选框。然后单击Finish(完成)。
-
Android Studio构建您的项目后,会显示一个带有locate(定位)链接的小消息窗口,用于打开在其中构建APK的目标文件夹。单击locate,并打开您的目标文件夹以便利地访问APK。
如果此窗口消失,您可以通过单击右下角的事件日志选项卡找到信息。项目中的位置为app/release,文件的名称为
app-release.apk
。
将您的APK上传到开发者控制台
现在您已经生成了一个已签名的发布版APK,请将其上传到开发者控制台。上传APK:
- 登录开发者控制台并进入主信息页面(单击右上角的开发者控制台链接)。
- 单击应用与服务,然后单击我的应用。
- 单击添加新应用程序按钮,然后选择Android。
- 在应用程序标题字段为您的应用赋予名称,并在应用程序类别字段确定其类别。有关这些字段的更多信息,请参阅应用提交过程中的步骤1: 上传您的应用文件。
- 单击保存。
-
在上传您的应用文件屏幕上,将APK从目标文件夹(您生成该APK的位置)拖到上传您的应用文件框中。等待文件上传。然后填写其他必填字段。
有关该屏幕的更多详细信息,请参阅步骤1: 上传您的应用文件。
-
在语言支持部分中选中一个复选框(例如,英语)。
按照提交应用入门指南进行操作,填写其余详情。目前,您必须有一个应用来附加安全配置文件。安全配置文件需要软件包名称。
将安全配置文件附加到您的应用
您需要将安全配置文件附加到您的应用。这将可让您的应用在Fire TV上获得授权。要将安全配置文件附加到您的应用,请执行以下操作:
- 如果您尚未在开发者控制台中查看应用,请登录https://developer.amazon.com,然后单击应用与服务,然后选择我的应用。选择您的应用。
- 在左侧的子选项卡列中,单击应用服务选项卡。
-
在安全配置文件部分展开选择现有安全配置文件或新建链接。然后在出现的“安全配置文件”下拉列表中,选择先前创建的安全配置文件,然后单击启用安全配置文件。
您将看到确认消息,说明Security profile "{Name}" has been successfully enabled for your app(已成功为您的应用启用安全配置文件"{Name}"),其中含有关于附加的安全配置文件的详细信息。
-
在亚马逊设备消息发送部分,单击启用设备消息传递按钮。
-
同样的安全配置文件也将对Login with Amazon部分显示为已附加。
请注意,一旦将安全配置文件附加到应用,就无法删除或更改安全配置文件对应用的附加。
后续步骤
继续执行下一步: 步骤6: 创建并部署Lambda软件包。
(如果遇到任何问题而无法继续,请参阅云端集成故障排除。)
Last updated: 2023年10月2日