Ionic 3 Android的新版apk无法更新。显示“应用未安装。包似乎已损坏”。

3
我有一个现有的Ionic应用程序(已部署在Google Play上),我刚刚进行了一次新构建,修复了一些错误等。我已经将Ionic更新到最新版本,并更新了Ionic CLI到3.x等,但除此之外,构建与之前相同(在同一台机器上),我仍然使用与之前相同的密钥库文件
然而,当我将发布的构建apk复制到我的Android设备上手动安装时(在推送到商店之前我总是这样做),现在出现应用程序未安装。包似乎已损坏
如果我删除现有版本,则新的apk可以正常安装。这是我预期的签名文件(密钥库)已更改的错误类型,但它绝对没有更改,我总是从同一保存位置获取它。正如我以前成功做过的那样,我将密钥文件复制到平台/Android文件夹中,如这里所述。构建的结果文件是android-release.apk,因此已被签名。

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

有人有什么其他可能出错的建议吗?我该如何开始诊断呢?

提前感谢任何想法。

[更新]

根据这篇文章,我使用keytool -printcert -file CERT.RSA检查了以前和当前版本的签名证书内容。我已经确认它们具有完全相同的内容(因为我知道它们应该是这样)

[更新2]

阅读了一些其他帖子后,建议可能是AndroidManifest.xml,我使用这个建议的应用程序打开了每个apk。所有内容看起来完全相同,除了versionCodeversionName,显然设置为新版本。

例如

file 1

versionCode='9'
versionName='1.0.0'

file 2..

versionCode='6'
versionName='1.0.1'

这些完全反映了我拥有的每个版本


同样的错误也发生在我身上,因为我使用了旧版本的.keystore签名,而新版本则使用了不同的.keystore。我所做的就是删除旧版本。 - A. Khaled
1个回答

4

最终我意识到我的问题是版本代码。我为每个应用程序版本重置了构建编号,然后使用android-versionCode(在Cordova config.xml中)存储构建编号。但在Android文档中,它指出此versionCode必须始终增加。一旦我将其设置为10(在我的情况下),apk就会升级。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接