我有一个现有的Ionic应用程序(部署在Google Play上),我刚刚完成了一个新的构建,修复了一些错误(等)。此后我将 Ionic 更新到最新版本,并将 Ionic CLI 更新到 3.x 等,但除此之外,构建是相同的(在同一台机器上),并且我使用的是与以前相同的密钥库文件。
但是,当我复制已发布的构建apk以手动安装到我的Android设备上时(就像我在推送到商店之前所做的那样),现在正在app not installed. The package appears to be corrupt
如果我删除现有版本,那么新的apk安装正常。如果我的签名文件(密钥库)已更改,这是我可能遇到的错误,但绝对没有,我一直从同一个保存的地方得到它。正如我之前成功完成的那样,我将密钥文件复制到平台/Android文件夹中,如此处所述。构建中生成的文件是android-release.apk因此已签名。
我现在不知道如何诊断这个问题。我当然不希望用户在更新之前必须先卸载。
有没有人对这里可能还有什么问题以及我如何开始诊断这个问题有任何建议?
提前感谢您的任何想法。
[更新]
在这篇文章之后,我使用以前和当前版本的keytool -printcert -file CERT.RSA
检查了签名证书的内容。我已经确认他们有完全相同的内容(因为我知道他们会)
[UPDATE2]
在阅读了其他一些建议可能是AndroidManifest.xml
的帖子后,我使用此建议的应用程序打开了每个apk。除了versionCode
和versionName
之外,所有内容看起来都完全相同,显然是设置为新版本。
例如
file 1
versionCode='9'
versionName='1.0.0'
file 2..
versionCode='6'
versionName='1.0.1'
这些完全反映了我为每个构建的版本
终于意识到我的问题是版本代码。我正在重置每个应用程序版本的内部版本号,然后使用 android-versionCode(在 Cordova 配置.xml中)来存储内部版本号。但是在 Android 文档中,它声明此版本代码必须始终增加。一旦我将其设置为 10(在我的情况下),apk 就会升级。