2013-12-18 28 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會檢測到這個並提供卸載舊版本。

相關問題