【问题标题】:Application Update Fails - Inconsistent Certificates (..but not really)应用程序更新失败 - 证书不一致(..但不是真的)
【发布时间】:2011-12-31 10:52:08
【问题描述】:

我已经为我的应用程序发布了 5 个更新,没有任何问题。现在,当尝试安装更新以进行测试时,安装失败。通过常规的 Android 软件包安装程序,我收到错误“未安装应用程序”。

尝试通过 adb 安装应用程序时出现错误: [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]

我知道证书与我之前用于签署应用程序的证书相同。

我还在 Manifest 文件中相应地增加了 versionName 和 versionCode。

自上次更新以来唯一改变的是我的硬盘坏了,导致我重新安装了 eclipse、ADT、Android SDK 和 Java。崩溃后我基本上不得不重新设置整个开发环境。

所有内容,包括我的所有项目文件,都已备份。我可以很好地构建我的应用程序。

如果我先卸载以前的版本,安装工作正常,但这是我当前已发布的应用程序的更新。我不能要求用户卸载他们当前用于更新的任何版本。听起来很傻。

任何想法都会有所帮助。

【问题讨论】:

  • 什么是the regular Android package installer?如果您的意思是直接从 Eclipse 运行/安装,则它仅使用开发人员/调试密钥对包进行签名。如果您使用导出签名包工具,并手动将包上传到设备,那么,非常有趣。
  • harism 是正确的。如果您丢失了开发机器上的所有内容,那么您也丢失了 debug.keystore。您的应用程序的所有“调试”安装现在都是孤立的。您需要卸载这些调试版本,然后使用新的 debug.keystore 重新安装。
  • 由于缺乏更好的术语,我所指的“常规 android 软件包安装程序”是您的日常普通用户在从市场安装应用程序/从设备上的文件资源管理器。感谢您的努力/想法。这是我的人为错误。

标签: android certificate package


【解决方案1】:

我认为您需要再次确认您是否使用相同的证书,因为我们多次遇到相同的场景并且根本原因始终相同:证书更改。

您可以简单地解压缩 .apk 文件,因为它只是一个普通的 ZIP 包,然后找到文件 META-INF/CERT.RSA。不应更改所有 .APK 文件中的 CERT.RSA。确认,解密如下:

openssl pkcs7 -inform des -in CERT.RSA -out decrypted.txt -print_certs -text

您可以简单地在 .txt 文件上运行 diff

【讨论】:

  • 事实证明,它不是同一个密钥库。不要问我这个新的密钥库是如何进入我的项目文件夹的。我从几个月前开始备份并使用了那个密钥库,一切都很好。时间就是金钱的人,请整理好您的文件!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-10
  • 2021-02-28
  • 2017-06-25
  • 1970-01-01
  • 2021-08-15
  • 1970-01-01
相关资源
最近更新 更多