【发布时间】:2020-03-31 08:53:42
【问题描述】:
尝试在我的设备上安装调试类型的 .apk 文件时遇到问题。我有一个已经安装了versionCode=n 的应用程序。当我尝试使用versionCode=n+1 安装相同的应用程序时,我收到错误消息。
这是我调用命令adb install xxx.apk后的消息
安装 xxx.apk 失败:失败 [INSTALL_FAILED_UPDATE_INCOMPATIBLE:包 xxx 签名不 匹配之前安装的版本;无视!]
我所有的 .apk 文件都使用 Android 调试密钥库进行了签名。通过命令jarsigner -verify -verbose -certs xxx.apk 确认,给我下一条消息:
- 由“C=US, O=Android, CN=Android Debug”签名 摘要算法:SHA-256 签名算法:SHA256withRSA,2048位密钥
jar 已验证。
这些 .apk 文件是通过仅调用 assembleDebug 命令的 TeamCity CI 构建的。
这很奇怪,因为我可以轻松地更新 CI 构建的发布 APK 文件。仅在调试版本的情况下才会出现此问题。
您对此有任何想法吗? 提前致谢
【问题讨论】:
-
您是否总是在同一台计算机上使用相同的调试密钥库?
-
是的,我愿意。你的意思是不同计算机生成的单个项目的调试密钥库可以相互不同吗?
-
是的,如果您希望它们创建相同的签名,您应该将调试密钥库复制到另一台计算机。或者只是删除应用程序,以便可以使用新签名重新安装它
-
@jeprubio 我确定我所有的密钥库文件都是在单台 PC 上生成的,但是我很感谢您的建议
标签: android installation apk keystore signature