一、为什么开发者都在骂Google Play App Signing?
当你兴冲冲将aab上传到Google Play后,用户下载的版本却频繁出现Google /Facebook登录失败、三方SDK失效、支付功能异常?
恭喜你,踩中了Google Play App Signing的“签名替换”大坑!
核心问题:现阶段App上架Google Play,就必须启用Google Play签名服务。
Google Play App Signing会强制替换你的aab签名,导致本地调试版本与线上版本签名不一致,第三方服务(如登录、支付)因校验签名失败而罢工!
二、什么是Google Play App Signing?
Google Play App Signing:这是Google Play为App的每个版本签名时所用的应用签名密钥的公开证书。注意,开发者向API提供商注册密钥时,请使用该证书。应用签名密钥本身不可访问,它存储在安全的Google Play服务器上。
Google Play上传签名:这才是开发者私有上传密钥的公开证书。注意,请使用上传密钥为App的每个版本签名,以便Google Play能够确认相应更新是开发者自己提供的。
通俗来讲,Google Play App Signing是Google Play为每个App提供的签名,Google Play上传签名是开发者自己的签名。
默认情况下,用户通过Google Play安装的App签名就是Google Play App Signing这个签名。
此时,最方便的解决方案是,升级应用签名保持跟上传签名一致。
三、升级应用签名
升级应用签名对开发者账号有权限要求:需要谷歌主账号权限。
并且Google Play提供了每年一次的应用签名升级额度,注意升级完成后,当年的额度用完就变成灰色了无法再使用了哈。
下面详细讲解,升级应用签名全流程。
1、应用签名菜单下,请求升级密钥
2、选择升级密钥原因
一般选择原因:“我需要针对多个应用或预安装版本使用同一密钥”。
3、下载密钥工具pepk.jar
4、生成签名压缩包
在终端执行命令,注意替换参数:
java -jar pepk.jar --keystore=你的密钥.jks --alias=密钥别名 --output=output.zip --encryptionkey=固定加密串 --signing-keystore=你的密钥.jks --signing-key-alias=密钥别名
5、上传并提交审核
提交成功后可以看到,Google Play App Signing已经替换成想要的了,与上传签名一致。如图所示:
这样操作终于大功告成了,目前发现的最完美的解决方式。希望可以帮助遇到同样问题的朋友少走弯路。
四、注意事项
应用签名升级之前,安装过App老版本的用户,他们后续再安装或者更新App,还是使用的老签名,并不会使用新签名。那么这部分老用户遇到的由于签名而导致的功能问题,是无解的。
所以Android出海推荐最佳实践:App上架Google Play之后,立马升级应用签名,就能避免此大坑。
五、总结
升级Google Play应用签名虽流程繁琐,但却是解决签名不一致的唯一出路!按照上述步骤操作,签名相关问题可迎刃而解。
切记:谨慎操作,一年一次升级机会!