“由于应用程序签名不同,重新安装失败” - 可以覆盖?

时间:2011-04-30 13:07:57

标签: android eclipse adt

我正在两台PC上开发我的应用程序,所以很明显我在Eclipse中遇到错误“由于不同的应用程序签名而重新安装失败”,当试图在具有该应用程序副本的物理设备上进行部署时。

我的问题是:是否可以覆盖这个,这意味着部署应用程序DESPITE不同的签名?

原因是我的应用程序有一个我不想擦除的数据库,因为我正在修复与它相关的错误。有没有快速修复,不需要卸载应用程序/复制PC之间的keyrstore文件?打赌没有,但只是问。谢谢!

2 个答案:

答案 0 :(得分:18)

不,没有办法覆盖它。 From the documentation

  

当系统正在为应用程序安装更新时,它会将新版本中的证书与现有版本中的证书进行比较。如果证书完全匹配,包括证书数据和订单,则系统允许更新。

解决此问题的一种方法是尝试使用相同的密钥库在两台计算机上签署应用程序。如果您使用的是Eclipse,

  1. 转到首选项 - > Android - >建立 在那里你应该找到'默认调试密钥库'的路径。 (通常类似于/Users/username/.android/debug.keystore。
  2. 将此文件复制到新计算机。
  3. 在新机器上的Eclipse内部,打开首选项 - > Android - >建立
  4. 在“自定义调试密钥库”
  5. 字段中输入文件的路径
  6. 保存,然后您可以运行您的应用并使用相同的密钥进行签名。
  7. 祝你好运

    UPDATE:

    现在可以在Gradle中配置您的签名密钥(将由Android Studio使用),并将您的调试密钥包含在源代码管理中。只需将密钥添加到项目文件夹中,然后将以下内容添加到build.gradle文件中:

    signingConfigs {
            debug {
                storeFile file("../debug.keystore")
            }
        }
    

    并在构建类型下添加:

    buildTypes {        
        debug {
            debuggable true
            signingConfig signingConfigs.debug
        }
    }
    

    有关详细信息,请参阅documentation

答案 1 :(得分:3)

  

我的问题是:是否可以覆盖这个,这意味着部署应用程序DESPITE不同的签名?

选项#1:卸载应用程序,然后重新安装。

选项#2:在两台计算机之间同步debug.keystore个文件,这样您就可以在两个位置使用相同的密钥进行签名。

  

是否有快速修复,不需要卸载应用程序/在PC之间复制keyrstore文件?

不,抱歉。