更新 Google Play 应用签名

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

一、起因

之前没有经验,所以跟发行合作时制作的发行平台所需的游戏 apk 还有 google play 所需的 apk 都是用的相同的包名签名。此时游戏主要在发行的平台进行推广,gp 端则跑自然量。
后来有另一家发行看上了这个游戏,想要通过买量的方式先测试下 gp 端的数据。
通过和第一家发行交流后,得到的结果是需要将 google play 上游戏包体的签名改成新签名,并且保持包名不变。
于是就有了以下的一顿捣鼓。


二、应用完整性

根据发行方提供的方法,首先需要在 Google Play 后台找到 应用完整性 标签,并修改 自动保护商品详情的公开范围 这两个服务。具体是什么原因没有细查,也不是本文的主要内容。

在这里插入图片描述


三、应用签名

在这里插入图片描述

在这里插入图片描述

如图所示,需要修改的就是这个应用签名密钥证书

该页面设计到两个密钥证书:一个是 应用签名密钥证书,一个是 上传密钥证书

通常我们自己打包 aab 包时使用的 keystore 就是这个 上传密钥证书,该证书是为了让 Google 能够知道更新的 aab 包确实是由其开发者提供的。
应用签名密钥证书 才是用户从 google play 下载的游戏对应的签名。

到了这里就会出现一个问题:由于新游戏上传 google play 时会加入那个开发者计划,此时 google play 会默认生成一个新的 应用签名密钥证书,而这个证书跟我们打包游戏时自带的 keystore 是不一致的,按说已经满足了发行方同包名不同签名的需求。

但奈何发行那边说还是要更新,那就只能继续搞。


四、更新 应用签名密钥证书 的好处

后续通过查看资料发现更新这个 应用签名密钥证书 还有两个好处。

1. 保持签名的安全性

理论上来说当前游戏签名密钥即使是 SHA-256 加密也还是存在风险的,所以定期更换签名可以提高安全性。
但是实际上我们的游戏还没到那种被人惦记的程度。
此外,更新了 应用签名钥匙证书 后,使用旧证书的 apk 用户就无法自动更新了,所以如果已经有了大量玩家基数的游戏需要谨慎更新。

2. 可以将 应用签名密钥证书上传密钥证书 统一

默认新游戏上传时 gp 会自动生成一个 应用签名密钥证书,该证书和 上传密钥证书 是不同的,这可能会造成一些问题。
根据此篇文章所说,这种签名不同的状况会导致本地调试版本与线上版本签名不一致,第三方服务(如登录、支付)因校验签名失败而无法正常使用。


五、升级应用签名密钥

选择 从 Java 密钥库上传新的应用签名密钥 之后安装步骤来。
在这里插入图片描述
比较重要的是以下命令

$ java -jar pepk.jar --keystore=foo.keystore --alias=foo --output=output.zip  --signing-keystore=uploadkey.keystore --signing-key-alias=upload-key-alias --rsa-aes-encryption --encryption-key-path=/path/to/encryption_public_key.pem

pepk.jar 是一个应用签名工具,全名:Publicly Exposed Private Key

此时可能会遇到问题。
1、可以看到需要用到 foo.keystoreuploadkey.keystore 两个 keystore 文件。
经过查看 pepk.jarhelp 内容,这个 foo.keystore 应该就是我们需要的新的 应用签名密钥证书,而 uploadkey.keystore 则是 上传密钥证书
所以如果需要将证书统一,就只需要在对应的位置使用相同的 keystore 文件就可以了。
这么做的前提条件是需要先重置 gp 的 上传密钥证书,否则新生成的 .zip 文件无法上传。
上传密钥证书 的相关操作很简单,跟着提示搞就行。

2、想方便一些就将需要的文件都放在一个路径中,然后通过 cmd 进入该路径后再执行命令。
例如:

$ cd D:\ChangeKeystore
$ java -jar pepk.jar --keystore=new_gp_keystore.keystore --alias=new_gp_keystore_alias --output=output.zip --signing-keystore=new_gp_keystore.keystore --signing-key-alias=new_gp_keystore_alias --rsa-aes-encryption --encryption-key-path=encryption_public_key.pem

意思是在 D 盘 创建一个 ChangeKeystore 的文件夹,将下载的 encryption_public_key.pempepk.jar 文件和新制作的 new_gp_keystore.keystore 文件放入里面,通过 cmd 进入后执行命令,生成的 output.zip 也会生成在这个文件夹内,而 output.zip 就是我们需要上传的文件。

3、报错:Cannot find any provider supporting RSANE/OAEPWithSHA1AndMGF1Padding
可能在执行命令时遇到这个报错,相关问题是由于 jdk 等级太低导致的,可以参考这篇文章升级 jdk。之后就可以正常制作 output.zip 文件了。

更新完成后,就可以发现 GP 后台这两个密钥证书的参数已经一致了。


六、等待和打包

更新 应用签名密钥证书 后,就可以打新的 aab 包了,由于也更新了 上传密钥证书,所以打包时使用的 keystore 也要替换成 new_gp_keystore.keystore。如果此时将新 aab 包传上去会有报错,原因是更换了证书需要等几天才会同步完成,之后就可以把新包传上去了。

PS:需要注意的是,每年只能更新一次这个 应用签名密钥证书,所以更新的时候需要格外谨慎。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值