Android 安装失败 - 相同的包但不同的签名

Posted

技术标签:

【中文标题】Android 安装失败 - 相同的包但不同的签名【英文标题】:Android Installation failed - Same package but a different signature 【发布时间】:2018-02-27 22:06:07 【问题描述】:

我在设备上安装了我的发布应用程序(来自 Google play)。当我尝试通过在 android Studio 中运行安装应用程序时,出现此错误。

我什么也没做,它总是有效,我总是在将 apk 上传到 Google play 之前检查发布版本。

我认为上传到 Google Play 可能会解决问题,所以我上传了一个 alpha 版本(不想冒险上传到生产环境,因此不会强制我的用户先卸载) 但是我的 alpha 测试人员得到了这个:

,我相信如果我将 apk 上传到生产环境中,它会是一样的。

    什么会导致签名不同? 我如何检查有什么区别?

【问题讨论】:

【参考方案1】:

所以让我们以相反的顺序回答你的问题。

    如何检查差异?

您可以通过pulling the APK off the device,然后looking at the certificate hash 来检查差异。

    可能是什么原因造成的?

很多东西 - 这里有两个:

您更改了本地密钥库(或将其删除),Android Studio 为您生成了一个新密钥库 您注册了Google Play App Signing,因此交付的 APK 上的签名与您上传的 APK 上的签名不同。

【讨论】:

【参考方案2】:

您的设备上已经安装了signed release version,因此您无法安装unsigned debug version。 我的解决方案是从设备中卸载当前包(并清除它的数据以确保),然后重试通过 android studio 运行。

【讨论】:

【参考方案3】:

即使你有相同的包,如果你有不同的buildType,手机在不卸载以前的版本的情况下将无法安装。

我在使用 HockeyApp 时遇到了同样的问题,卸载手机上的现有版本解决了它。

【讨论】:

我用相同的构建类型运行它,发布 您在 Android Studio 中遇到的错误是什么?您的问题似乎没有该信息。

以上是关于Android 安装失败 - 相同的包但不同的签名的主要内容,如果未能解决你的问题,请参考以下文章

Android签名打包详解

Android 程序打包及签名

对Android应用签名

Android:应用程序签名总结

Android APK如何签名

Android APP的签名