uniapp打包apk提示签名冲突

简述:同一个appid使用【使用云端证书】云打包,打包出来的apk无法覆盖安装
附:uni-app上我提的bug单 同一个证书云打包的签名冲突

打包事件记录

2021年10月的时候开发app,开发完成后要上线了,公司申请了一个上线的appid(后文统一:__UNI_PRODUCT)并申请了证书,给我的uni-app账号分配了开发权限。我自己本身就有一个学习用的appid(后文统一__UNI_SELF)并申请过证书。前期开发的时候我测试uni-app的云打包功能,由于每日的打包次数有限制,期间我有用过__UNI_SELF打包。但是我会使用云打包功能以后,就把appid切换成了公司的__UNI_PRODUCT。后续11月份开发自测完以后,就打包上线了。
2022年1月份、2月份、4月份分别升级过app,appid填写的是__UNI_PRODUCT,打包证书均勾选的是【使用云端证书】
使用云端证书打包

2022年9月,由于疫情我居家上班了,使用自己的电脑appid填写的是__UNI_PRODUCT,打包证书均勾选的是【使用云端证书】,打了一个包,升级app时发现,却无法覆盖安装,提示签名冲突。由于app已经上线,不可能要求用户卸载再安装,所以开始找问题原因以及解决方法

解决过程:

一开始我以为是由于我换了设备的原因,但是在uni-app的官网上搜了一下,人家否认会因为设备原因,云打包打出来的包无法覆盖安装,而且疫情结束后,我回公司使用公司的电脑打包,依旧无法覆盖安装。
于是我又翻阅uni-app上的文档,有类似的情况,但是都被技术客服确认了是选择证书选错了。但是我100%确定我从一开始就一直选择的是【使用云端证书】,而且我的appid始终是同一个,怎么可能会选错证书呢。于是我提交了一个bug单: 同一个证书云打包的签名冲突
技术客服在上班以后也第一时间回复了我的问题,他们也以为是我自己手动选错了证书,我解释以后,他们继续帮我排查问题。
在等待技术客服回复的时候,我使用了命令查看了一下4月份之前打包生成的签名指纹和9月份打包生成的签名指纹。命令:keytool -printcert -file filename,使用命令之前记得把apk解压了,签名信息在META-INF文件夹里的后缀名为.RSA的文件
4月份打的包签名信息:
4月份打的包签名信息
9月份打的包签名信息:
9月份打包签名信息
两个包的签名信息的确不一样,我对比了一下在dcloud的开发者中心查看了__UNI_PRODUCT的证书详情,奇葩的是居然9月份打的包签名时正确的,4月份及以前打的包签名信息不对,使用的居然是__UNI_SELF的证书。
差不多同时,技术客服也发现了,我4月份的包使用的是__UNI_SELF的证书,告诉我把__UNI_SELF的证书下载下来,打包的时候勾选【使用自有证书】就行。
当然这样虽然解决了签名不一致的问题,但是很明显我的证书和dcloud的开发者中心就不保持一致了,管理起来很麻烦,于是我要求技术客服帮我在后台更换了证书信息,问题解决了!

解决思路

要是有小伙伴也遇到了 同一个appid打包无法覆盖安装,提示签名冲突的问题,不要急,100%是两次打包证书不一样。
1、把打出来的apk包解压以后,使用 keytool -printcert -file filename 命令查看签名信息
2、有的时候会是因为不小心勾选了uni-app的测试证书,或者【使用自有证书】选择证书的时候选错了,这种情况重新选择对的证书就可以了。
3、要是遇到我那种奇葩的【使用云端证书】,同一个appid都错,那就查看自己账号下的其他appid的证书信息,是不是uni-app在云打包的时候取错了证书。自己换一下appid,或者【使用自有证书】、或者找技术客服调换证书都可以解决问题,

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值