公司在谷歌上线了安卓版本后,迎来了一次版本强制升级。升级是从应用内部提示更新然后从文件服务器下载安装包进行安装。看似很简单也很常规的一件事,但是后来得到技术支持同事反馈多个用户无法正常安装新版APP。收到反馈后,我么开始复现问题,由于国内访问google play比较麻烦以及一开始没有想到是谷歌二次签名问题,和测试同事并没有从谷歌商店下载旧版,所以几经周折也没有复现这个问题。当时主要从以下几方面入手:

1.旧版与新版签名不一致(由于认为一直用的都是同一个jks文件打包,所以此原因首先被排除)

2.新版比旧版versionCode低(检查代码后排除)

3.引用了部分库FileProvider冲突(通过查看git提交日志,没有在新版迭代期间加入库,此原因也排除)

后来通过各种谷歌百度终于找到问题所在,Google Play对所上架的APP默认选择了二次签名,也就是和自己维护的jks签名是冲突的。下面说一下如何去除二次签名保持和自己的一致以及如何在发布第一版时就不使用谷歌二次签名。

一.已使用谷歌签名的如何去除,保持与自身签名一致

这位博主写的比较详细,当时也是参考了他的内容。

二.新发布的应用如何直接选择自身签名

1.首先在自己新建的APP下选择 App integrity发布版本

2.在发布版本时选择Manage app signing

3.下面就和上面文章中的操作步骤一致了

现在想想当时一开始就排除签名问题确实挺蠢的,看似最不应该出现的问题很有可能就是问题所在,也给自己以后处理问题提个醒~