0、上传密钥 & 应用签名密钥

“Google 会使用上传证书验证您的身份,并使用您的应用签名密钥为 APK 签名以进行分发”

以上为官方解释。

2021年8月起,上传google play的应用必须以aab格式,aab的签名流程要比之前apk的复杂一些。需要上传密钥和应用签名密钥两个密钥。

首先,你需要在google开发者平台上传或更新两个密钥(此处有三种情况,下面会详细介绍:1.在google play新建一个aab应用 2.为google play之前的aab应用更新密钥 3.为google play之前的apk应用更新密钥。此处,第三种情况较为复杂,因为以前apk只有一个密钥,现在要将他更新为aab的两个密钥,以前的密钥不能丢,需要用以前的密钥为新的密钥签名再上传才能更新成功)。然后用android studio打出用上传密钥签名的aab包,上传google play Console。Google play Console 会验证aab应用的上传密钥,验证不通过便上传失败。上传成功后,便可发布版本。审核通过后,用户在google play下载应用时,google play会剔除你的上传密钥,将aab组装成apk,然后用应用签名密钥进行签名,供用户下载。

0.1、生成上传密钥

填写信息,注意:有效期最好25年,时间太长,上传google play时可能会审核不通过。

记录下密钥的别名和密码,

以后都用这个密钥签名aab再上传google play。

0.2、生成应用签名密钥

基本流程和生成上传密钥的相同,但是有几个地方需要注意一下

生成新密钥时,最好选择.keystore格式

上架google play的应用要勾选”Google play App Signing”选项

将该签名上传至google play console

1、Google play上架aab流程

1.1、创建应用

点击创建应用

填写信息,点击创建

1.2、根据提示依次填写商品详情

1.3、添加国家和地区

1.4、创建发布版本

1.5、上传自己的签名

上传自己的签名文件(上传密钥 + 应用签名密钥)

下载pepk工具,根据命令行生成所需文件

应用签名密钥 : java -jar pepk.jar --keystore=test_app_signing_key.keystore --alias=swiftpasssign --output=app_sigining_key_output.zip --include-cert --encryptionkey=eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a

上传密钥: keytool -export -rfc -keystore test_upload_key.jks -alias swiftpass -file upload_key_certificate.pem

上传后点击保存

保存成功后会提示

注:若此时只上传应用签名密钥不上传上传密钥,审核通过后,在应用完整性处查看两个密钥会是一样的。

1.6、上传aab文件

上传成功后填写相应信息,并点击保存

点击检查

版本检查通过,点击发布正式版

在版本概览里,可以查看当前发布版本,处于”可以送审”状态

在发布概览点击”送审”

2、Google play aab应用更新签名

应用签名密钥每年只能修改一次,上传密钥需要联系google团队修改。

2.1、修改应用签名密钥app_signing_key

根据命令行生成所需文件 命令行中包含着用上传密钥为新的应用签名密钥签名的操作

java -jar pepk.jar --keystore=new_app_signing_key.keystore --alias=wftsign --output=new_app_signing_key_output.zip --signing-keystore=test_upload_key.jks --signing-key-alias=swiftpass --encryptionkey=eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a

根据需要进行选择升级版本

上传文件,选择原因,点击升级

点击确认

系统会提示

此时再查看应用签名密钥,已经更改

2.2、修改上传密钥upload_key

需要联系google团队

3、Google play已上架的apk应用更新为aab

3.1、上传上传密钥和应用签名密钥

生成应用签名密钥

有坑注意

注:先用之前上传apk所用的签名文件生成,生成之后再升级修改

旧签名文件

java -jar pepk.jar --keystore=spay_intl_keystore.jks --alias=spay_intl --output=old_app_signing_private_key.pepk --encryptionkey=eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a

生成上传密钥 keytool -export -rfc -keystore swiftpass_upload_key.jks -alias wft -file upload_certificate.pem

上传密钥

上传成功

3.2、更换应用签名密钥

注:因为旧的密钥加密强度不符合Google Play新标准。

上传新的应用签名密钥

该应用签名密钥生成时需要用上传密钥进行签名(命令行中已包含该操作,只需替换对应参数即可)

java -jar pepk.jar --keystore=swiftpass_app_signing_key.keystore --alias=wftsign --output=app_sigining_key_output.zip --signing-keystore=swiftpass_upload_key.jks --signing-key-alias=wft --encryptionkey=eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a

选择原因,上传密钥