2013-12-18 25 views
1

我在Android上制作了应用程序并将其发布到了Play商店。我用一个新的私钥签署了我的apk。Android比较当前包和新版本应用程序的签名

上周,我想用我的新功能更新我的应用程序。当我尝试在设备上安装新版本,其给我的错误信息:

application not installed , an existing package by the same name with conflicting signature is already installed , 

所以我的问题是,用我的新版本和关键IM在Play商店中的一个香港专业教育学院之间进行比较,以确保即时通讯使用相同的私钥

回答

3

首先,解压缩APK并提取文件/META-INF/ANDROID_.RSA(该文件也可能是CERT.RSA,但应该只有一个.RSA文件)。

然后发出以下命令:

keytool -printcert -file ANDROID_.RSA 

您将获得证书,指纹这样的:

 MD5: B3:4F:BE:07:AA:78:24:DC:CA:92:36:FF:AE:8C:17:DB 
    SHA1: 16:59:E7:E3:0C:AA:7A:0D:F2:0D:05:20:12:A8:85:0B:32:C5:4F:68 
    Signature algorithm name: SHA1withRSA 

然后再次使用密钥工具,打印出您的签名密钥库的所有别名:

keytool -list -keystore my-signing-key.keystore 

您将获得别名及其证书指纹列表:

android_key, Jan 23, 2010, PrivateKeyEntry, 
Certificate fingerprint (MD5): B3:4F:BE:07:AA:78:24:DC:CA:92:36:FF:AE:8C:17:DB 

瞧!我们现在可以确定apk已经用这个密钥库和别名'android_key'签名。

Keytool是Java的一部分,因此请确保您的PATH具有Java安装目录。

来源: How do I find out which keystore was used to sign an app?

0

当你从一个调试版本切换到一个发布版本和背部会发生这种情况。

解决方法是简单地卸载旧版本。

Android Studio会检测到这个并提供卸载旧版本。

相关问题