Android:错误 - 应用程序具有相同的打包不同签名

时间:2015-01-10 04:48:35

标签: android android-studio apk android-keystore

我遇到了android studio正在说的问题

 Installation failed since the device has an application with the same package but a different signature. . . .. 

这是正确的,因为我最近签署了一个APK并上传到我的播放开发者控制台的测试版区域。

现在我正在尝试在本地调试它,默认情况下我认为所有Android项目都是由调试密钥库签名的,因此签名会有所不同。

处理此问题的最佳方法是什么?是否可以使用我的发布密钥签署我的调试版本,这是否存在潜在危险?

如何在不失去调试能力的情况下强制使用我的发布密钥库签署调试版本?

或者我应该继续卸载并重新安装不同的版本 - 这似乎是最糟糕的解决方法。 : - )

5 个答案:

答案 0 :(得分:18)

您可以使用发布密钥对应用程序进行签名,同时保留调试选项 - 您只需将发布密钥添加到Android Studio中(或者如果您在那里签署应用程序,则在命令行中指定它)。

在Android Studio中,右键单击项目浏览器中的应用程序并打开模块设置。选择您的应用程序模块,然后单击“签名”以确保列出您的发布密钥库。然后在“构建类型”下,确保调试目标和发布目标共享相同的签名配置,并且调试目标将debuggable设置为true。他们现在应该共享相同的密钥。

有关应用签名的更多信息,请参阅开发人员文档here

我没有听说过使用相同的密钥进行调试和发布的缺点,只要私钥保持安全(读取:不受版本控制)。

答案 1 :(得分:1)

就我而言,在升级 Android Studio 后,我删除了 $HOME/.android 文件夹,这使 Android Studio 创建了一个新的 $HOME/.android/debug.keystore。 复制旧的 debug.keystore 后,它又工作了。

答案 2 :(得分:0)

尝试更改调试以发布在构建版本中

答案 3 :(得分:0)

对我来说,这项工作只是将“ build.gradle(Module:app)”中的应用程序ID更改为

defaultConfig {
    applicationId 'com.zebra'

}

如果仍然不明白,这是一个-> screenshot of image

答案 4 :(得分:-1)

更改gradle文件中的应用程序ID对我来说是

    defaultConfig {
    applicationId 'com.example.app'
    }