Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android比较当前软件包和新发布应用程序的签名_Android - Fatal编程技术网

Android比较当前软件包和新发布应用程序的签名

Android比较当前软件包和新发布应用程序的签名,android,Android,我在android上制作了一个应用程序,并在play store上发布了它。我用一个新的私钥签署了我的apk 上周,我想用我的新功能更新我的应用程序。当我尝试在设备上安装新版本时,其提示错误消息: application not installed , an existing package by the same name with conflicting signature is already installed , 因此,我的问题是,将我在新版本中使用的密钥与play store中的

我在android上制作了一个应用程序,并在play store上发布了它。我用一个新的私钥签署了我的apk

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

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

因此,我的问题是,将我在新版本中使用的密钥与play store中的密钥进行比较,以确保我使用的是相同的私钥。首先,解压缩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打印出签名密钥库的所有别名:

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的一部分,因此请确保您的路径中包含Java安装目录

资料来源:

首先,解压APK并提取文件/META-INF/ANDROID_2;.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打印出签名密钥库的所有别名:

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的一部分,因此请确保您的路径中包含Java安装目录

资料来源:

当您从调试版本切换到发布版本并返回时,会发生这种情况

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


Android Studio将检测到这一点,并提供卸载旧版本

当您从调试版本切换到发布版本并返回时,会发生这种情况

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

Android Studio将检测到这一点,并提供卸载旧版本