记一次版本升级遇到的坑

缘由

前几天运营说运营商对平台的app退出方式提了新要求,我们做的是电视盒子的app,目标受众和普通app不太一样,本来是不应该频繁更新的,用户体验会不好,但是谁让我们遇到不讲理的甲方了呢,一个小功能必须要改,没办法只能上了。

开发过程一切顺利,当打好包测试覆盖安装时怎么也安装不上,提示解析失败,一般像这种情况多半是签名问题,当时心里一紧--难道上次升级是debug版本的,心想完了。但是后来又一想不会这样,每次升级apk都是发的邮件,他们不会有debug版的安装包,看来不是签名问题。然后后面就开始一种可能一种可能的试:

  • 系统不允许从磁盘安装--测试安装其他产品apk,覆盖安装没问题,说明不是这个问题
  • 打包的apk文件有问题--卸载原来app,从磁盘全新安装没问题--安装包也没问题

这两步试完就很绝望了,继续猜测可能版本号有问题,所以版本号改大了几位,重新试还是不行,没办法想着打印下安装过程的日志,看看会不会有什么惊喜,日志很长,就先试着搜索下包名,一搜还真发现了,具体在加粗部分:已经安装的版本号比我们新打包的版本号高,看到这又联想起之前的一件事马上就明白了

//.......有删减

03-26 10:49:23.693 4389-17804/? I/ActivityManager: START u0 {dat=file:///storage/external_storage/sda4/测试apk/xxxxxxxxxx.2.001.025.022_new.apk cmp=com.android.packageinstaller/.InstallAppProgress (has extras)} from pid 3453 03-26 10:49:23.693 4389-17804/? I/ActivityManager: start package name is com.android.packageinstaller, class name is com.android.packageinstaller.InstallAppProgress, error code is 0 03-26 10:49:23.713 4389-17804/? W/ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.sendBroadcast:1206 com.android.server.am.ActivityStackSupervisor.startActivityLocked:1334 com.android.server.am.ActivityStackSupervisor.startActivityMayWait:761 com.android.server.am.ActivityManagerService.startActivityAsUser:3376 com.android.server.am.ActivityManagerService.startActivity:3354

//.......有删减

03-26 10:49:23.743 3453-3453/? W/InstallAppProgress: Replacing package:com.xxx.xxx 03-26 10:49:23.763 4389-4633/? W/ActivityManager: No content provider found for permission revoke: file:///storage/external_storage/sda4/测试apk/xxxxxxxxxx.2.001.025.022_new.apk 03-26 10:49:23.763 4389-4633/? W/PackageManager: Can't install update of com.xxx.xxx update version 20170920 is older than installed version 20180205 03-26 10:49:23.813 4389-4462/? I/ActivityManager: Displayed com.android.packageinstaller/.InstallAppProgress: +91ms

//.......有删减

结论

去年大概9、10月的时候我们app上线,下载安装但是怎么也打不开,后来我还出差过去看到底怎么回事,结果去了一看下载的根本不是我们的app,而是另一个省和我们同包名的一个app,也就是说我们上线产品是按省划分的,但是他们安装确是从全国搜索出来的,这样一个很严重的bug,然后反馈给运营商后给我们的产品特殊处理了,包括检测升级部分,他们是手动设置了一个版本号来检测升级,不是根据apk的versionCode来判断,然后他们就根据当时的日期给我们app设了个版本号然后就比我们app的versionCode高了导致怎么也安装不上,这里不得不吐槽下,运营商半年了bug还没改,之前还能正常覆盖安装,现在改的都不能覆盖安装了,越改bug越多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值