编程语言
首页 > 编程语言> > Java-Ionic 3 Android的新apk将不会更新.给出“未安装的应用程序.包裹似乎已损坏”

Java-Ionic 3 Android的新apk将不会更新.给出“未安装的应用程序.包裹似乎已损坏”

作者:互联网

我有一个现有的Ionic应用程序(已在Google Play上部署),在该应用程序中我刚刚完成了一些错误修复(例如)的新构建.此后,我将Ionic更新到了最新版本,并将Ionic CLI更新到了3.x等,但除此之外,该版本是相同的(在同一台计算机上),并且我使用的密钥库文件与以前相同.

但是,当我复制发布的内置apk以手动将其安装在我的Android设备上时(就像在推送到商店之前一样),现在却没有安装应用程序.软件包似乎已损坏

如果删除现有版本,则新的APK安装会正常.如果我的签名文件(密钥库)已更改,这是我可能会想到的一种错误,但是绝对没有,我一直都从相同的保存位置获取它.正如我之前成功完成的那样,我将密钥文件复制到platform / Android文件夹中,如here所述.生成的结果文件是android-release.apk,因此已签名.

我现在不知道如何诊断这个问题.我当然不希望用户在更新之前必须先卸载.

有谁对这里还有什么问题有任何建议,以及如何开始诊断呢?

预先感谢您的任何想法.

[更新]

this post之后,我使用先前版本和当前版本的keytool -printcert -file CERT.RSA检查了签名证书的内容.我已经确认它们的内容完全相同(据我所知)

[UPDATE2]

阅读了其他暗示它可能是AndroidManifest.xml的帖子后,我使用this suggested app打开了每个apk.所有内容看起来完全相同,除了versionCode和versionName显然设置为新版本.

例如

file 1

versionCode='9'
versionName='1.0.0'

file 2..

versionCode='6'
versionName='1.0.1'

这些恰好反映了我对每个版本的版本

解决方法:

终于意识到我的问题是版本代码.我正在为每个应用程序版本重置内部版本号,然后使用android-versionCode(在Cordova config.xml中)存储内部版本号.但是在Android doco中,它指出该versionCode必须始终增加.一旦将其设置为10(以我为例),apk就会升级.

标签:ionic-framework,cordova,ionic3,java,android
来源: https://codeday.me/bug/20191025/1932447.html