大家好!今天,我想与您谈谈我们作为Android工程师工作中很少讨论的主题,但这是我们应该考虑的最重要的事情之一,以防出现:更新您的应用程序签名密钥。 ð
重要的是要澄清本文假设您正在使用Play应用程序签名;事先,在Google Play游戏机中使用此功能是理想的选择。另一方面,我们将通过从新的密钥库生成新证书来执行该过程。
播放应用程序签名
这是Google Play Console提供给Android开发人员的服务,可让您在Google的安全基础架构中存储应用程序签名密钥,并提供升级选项以提高安全性。
请参阅更多信息here
但是,为什么我必须更改我的签名键?
,如果您遭受损失或组织外的人损害签名密钥,则应考虑更改签名密钥。另一种情况是,当应用程序更改所有权时,您要确保只有授权人员才能访问密钥;最后,如果您的签名密钥与另一个应用程序签名密钥相撞。
首先,我们将创建一个新的密钥库来生成新的应用程序签名密钥。您可以在KeyTool的帮助下从Android Studio或命令行生成密钥库。
如果您想使用Android Studio,请查看Android文档here。
另一方面,如果要使用键盘,则可以复制以下命令
keytool -genkey -v -keystore new_keystore.jks -alias new_alias -keyalg RSA -keysize 2048 -validity 10000
将生成带有指定名称的密钥库以及与指定别名关联的私钥。在创建过程中,将要求您提供一些详细信息,例如组织的名称和位置,发行人的通用名称等。
现在转到Play应用程序签名页面,然后选择应用程序签名选项卡。 (版本> setup > 应用程序完整性> 应用程序签名选项卡)。
然后,请求更新签名键,然后选择“从Java密钥店”上传新的应用程序签名密钥并执行建议的步骤:
- 下载 pepk 工具
- 复制游戏机中显示的命令,仅替换BOLD中突出显示的参数
- 生成证书后,将其上传到Play Store Console
pepk 工具是Google提供的加密工具,用于保护Android应用程序的私钥。 PEPK代表“私钥加密保护”,是包含带有主密码的加密私钥的文件格式。
让我们解释一下必须执行的命令。打开终端并粘贴从Google Play Console复制的命令
java -jar pepk.jar \
--keystore=foo.keystore \
--alias=foo \
--output=output.zip \
--signing-keystore=uploadkey.keystore \
--signing-key-alias=upload-key-alias \
--encryptionkey=generated-encryption-key
接下来我解释每个参数的含义。
密钥库:指定新密钥库的位置和文件名,该位置将用于通过PEPK工具签署加密的私钥输出。该密钥库应包含一个带有别名参数的别名的私钥。
别名:这是将在签名文件中使用的密钥库文件中私钥的别名。
输出:此参数用于指定签名文件的名称。
签名 - 钥匙店:指定现有密钥库的位置和文件名,该位置包含私钥,该密钥将在PEPK工具处理后将用于签署APK文件。此处指定的密钥库应包含一个私钥,该密钥带有签名 - 键 - 阿里亚利亚参数指定的别名。
signing-key-alias :此参数指定将用于签署文件的密钥库文件中的私钥的别名。
EncryptionKey :用于加密输出文件的加密密钥。
ð:签名 - 钥匙店和签名 - 键 - alias 是与包含上传密钥证书的密钥库相对应的参数。如果您仅将所有参数放入新密钥库的数据中,您将获得以下错误:
如果一切都正确完成,我们应该能够看到我们创建的证书
如果您喜欢我的内容并想支持我的工作,可以给我一杯咖啡。
跟我进去
Twitter: @devjcastro
Linkedin: dev-jorgecastro