我有一个现有的Ionic应用程序(部署在Google Play上),我刚刚完成了一个带有一些错误修复的新版本(等)。我已经将Ionic更新到最新版本,并将Ionic CLI更新为3.x等,但除此之外构建是相同的(在同一台机器上),我使用的是相同的密钥库文件强大>和以前一样。
然而,当我复制已发布的内置apk以手动安装在我的Android设备上时(就像我在推送到商店之前一样),现在我正在获取app not installed. The package appears to be corrupt
如果我删除现有版本,那么新的apk安装就好了。如果我的签名文件(密钥库)已被更改,这是我可能会遇到的那种错误,但它肯定没有,我从同一个保存的地方一直得到它。正如我之前成功完成的那样,我将密钥文件复制到平台/ 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'
这些完全反映了我为每个构建版本所拥有的版本
答案 0 :(得分:4)
终于意识到我的问题是版本代码。我正在重置每个应用程序版本的内部版本号,然后使用android-versionCode(在Cordova config.xml中)来存储内部版本号。但在Android doco中它声明这个版本的Code必须始终增加。一旦我将其设置为10(在我的情况下),apk就会升级。