无法在设备上更新调试 APK

Cannot update debug APK on device

我在尝试在我的设备上安装调试类型 .apk 文件时遇到问题。我有一个已安装 versionCode=n 的应用程序。当我尝试使用 versionCode=n+1 安装相同的应用程序时,出现错误。

这是我调用命令后的消息adb install xxx.apk

failed to install xxx.apk: Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package xxx signatures do not match the previously installed version; ignoring!]

我所有的 .apk 文件都使用 Android 调试密钥库进行了签名。命令 jarsigner -verify -verbose -certs xxx.apk 确认给我下一条消息:

  • Signed by "C=US, O=Android, CN=Android Debug" Digest algorithm: SHA-256 Signature algorithm: SHA256withRSA, 2048-bit key

jar verified.

这些 .apk 文件是通过调用 assembleDebug 命令的 TeamCity CI 构建的。

这很奇怪,因为我可以轻松更新由 CI 构建的发布 APK 文件。此问题仅在调试版本时出现。

你有什么想法吗? 提前致谢

您的 android 应用程序的每个调试版本都将使用调试密钥库进行签名。

这是一个问题,因为在持续集成环境中,例如 travis-ci 或 docker,调试密钥库会在每次创建环境时重新生成。

这意味着如果有人拥有您的应用程序的调试版本,他们将无法升级到更新的版本,因为密钥库会有所不同。

感谢:https://newfivefour.com/android-debug-build-constant-signed-keystore.html

还要比较两个 apk 是否使用相同的密钥签名: 检查:How do I find out which keystore was used to sign an app?