使用Play应用签名从新的密钥库中更新您的Android应用程序签名密钥。
#android #androiddev #androiddevelopment #playstore

大家好!今天,我想与您谈谈我们作为Android工程师工作中很少讨论的主题,但这是我们应该考虑的最重要的事情之一,以防出现:更新您的应用程序签名密钥。 ð

重要的是要澄清本文假设您正在使用Play应用程序签名;事先,在Google Play游戏机中使用此功能是理想的选择。另一方面,我们将通过从新的密钥库生成新证书来执行该过程。

播放应用程序签名

这是Google Play Console提供给Android开发人员的服务,可让您在Google的安全基础架构中存储应用程序签名密钥,并提供升级选项以提高安全性。

请参阅更多信息here

但是,为什么我必须更改我的签名键?

,如果您遭受损失或组织外的人损害签名密钥,则应考虑更改签名密钥。另一种情况是,当应用程序更改所有权时,您要确保只有授权人员才能访问密钥;最后,如果您的签名密钥与另一个应用程序签名密钥相撞。

首先,我们将创建一个新的密钥库来生成新的应用程序签名密钥。您可以在KeyTool的帮助下从Android Studio或命令行生成密钥库。

如果您想使用Android Studio,请查看Android文档here

Modal to create a keystore from android studio

另一方面,如果要使用键盘,则可以复制以下命令

keytool -genkey -v -keystore new_keystore.jks -alias new_alias -keyalg RSA -keysize 2048 -validity 10000

将生成带有指定名称的密钥库以及与指定别名关联的私钥。在创建过程中,将要求您提供一些详细信息,例如组织的名称和位置,发行人的通用名称等。
现在转到Play应用程序签名页面,然后选择应用程序签名选项卡。 (版本> setup > 应用程序完整性> 应用程序签名选项卡)。
然后,请求更新签名键,然后选择“从Java密钥店”上传新的应用程序签名密钥并执行建议的步骤:

  1. 下载 pepk 工具
  2. 复制游戏机中显示的命令,仅替换BOLD中突出显示的参数
  3. 生成证书后,将其上传到Play Store Console

Image to represent the option: Upload a new app signing key from Java Keystore

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 是与包含上传密钥证书的密钥库相对应的参数。如果您仅将所有参数放入新密钥库的数据中,您将获得以下错误:

Image to represent the error when trying to upload a certificate generated with a wrong upload key

如果一切都正确完成,我们应该能够看到我们创建的证书

Image with the result of the certificate created

如果您喜欢我的内容并想支持我的工作,可以给我一杯咖啡。


Buy me a coffee

跟我进去