最近寫自動化用例發現用之前的簽名文件重新簽名的包安裝的時候提示invalid apk,安裝不上,於是要了正式的keystore,但是發現正式的keystore在使用的時候有一系列的問題,比如修改keystore密碼,更改key和sha1等等,在網上找了一些資料,再次記錄一下。
轉載自: http://blog.csdn.net/u012049463/article/details/41822051
修改Android簽名證書keystore的密碼、別名alias以及別名密碼
之前在測試Eclipse ADT的Custom debug keystore自定義調試證書的時候,發過一篇關於調試證書規格的博文:Eclipse ADT的Custom debug keystore所需證書規格,提到過自定義調試證書的密碼和alias命名以及alias密碼都是有規矩的。其實Android應用開發接入各種SDK時會發現,有很多SDK是需要靠package name和keystore的指紋hash來識別的(百度地圖SDK、Facebook SDK等等…),這樣如果使用默認自動生成的debug keystore的話就會給開發調試工作帶來一些麻煩。這時可以通過修改正式的release keystore,生成一份“遵守規矩”的臨時自定義調試證書給開發時用,就方便多了,具體方法如下:
1. 首先當然是先複製一份正式證書出來作爲要修改爲的臨時調試證書。這裏我們這支的keystore 的密碼爲hahaha,alias爲silence,alias的密碼爲xixixi
2. 修改keystore密碼的命令(keytool爲JDK帶的命令行工具):
keytool -storepasswd -keystore my.keystore
其中,my.keystore是複製出來的證書文件,執行後會提示輸入證書的當前密碼(hahaha),和新密碼(android)以及重複新密碼(android)確認。這一步需要將密碼改爲android。
3. 修改keystore的alias:
keytool -changealias -keystore my.keystore -alias my_name -destalias androiddebugkey
這一步中,my_name是證書中當前的alias(silence),-destalias指定的是要修改爲的alias,這裏按規矩來,改爲androiddebugkey!這個命令會先後提示輸入keystore的密碼(android,已經在第二步中進行了修改)和當前alias的密碼(xixixi)。
4. 修改alias的密碼:
keytool -keypasswd -keystore my.keystore -alias androiddebugkey
這一步執行後會提示輸入keystore密碼(android),alias密碼(xixixi),然後提示輸入新的alias密碼(android),同樣,按規矩來,改爲android!
以上幾個操作執行後,my.keystore就是符合規矩的debug keystore了,接着在Eclipse的ADT設置中選中這個custom debug keystore即可,如下:
同時還可以看到證書的MD5以及SHA1指紋。
PS:以上3步命令行並沒有先後順序。
key.alias= 別名
此別名一開始以爲可以隨便寫,後來多次嘗試發現亂寫打包一定不成功,此別名要與第一次生成簽名時的別名一至,由於簽名不是我申請的,申請簽名的同事也忘記了簽名的別名,如此只好找工具看一下簽名的信息了,其實工具不用找了,在jdk中有
直接keytool -list -v -keystore xxxx.keystore -storepass 密碼 簽名的信息就有了
C:\SoftwareInstallSpace\Java\jdk1.8.0_77\bin>keytool -printcert -file D:\ForComputer\chromDownload\JinfengAppV2p0\META-INF\ANDROID1.RSA
badging D:\ForWork\JG_c10n2.7_20170109.apk
轉載自: http://blog.csdn.net/andyddd/article/details/45307587
在使用第三方sdk時,例如百度地圖,需要使用簽名的sha1的值。這個值可以在eclipse->windows->preferences->Android->build裏看到。
但這個值和發佈key的sha1是不一樣的。其實可以通過設置custom keystore的方式,使debug.keystore和發佈的keystore的sha1值一樣。
方法是:
1. 拷貝一份你的發佈key
2. 修改這個key的別名爲:androiddebugkey
3. 修改這個key的storepasswd 和 keypasswd爲"android".
(實際上debug.keystore這個默認生成的key的別名就是:"androiddebugkey",兩個口令是“android”)
在命令窗口執行的命令如下:
keytool -changealias -keystore mykeystore.keystore -alias [old alias] -destalias androiddebugkey
keytool -keypasswd -keystore mykeystore.keystore -alias androiddebugkey
keytool -storepasswd -keystore mykeystore.keystore
修改時,需要知道原來發布key的alias,可以通過以下命令查看alias:
keytool -list -v -keystore mykeystore.keystore
4. 設置eclipse->windows->preferences->android->build中的custom keystore爲你這個改完口令的key文件,設置完成後,可以看到,這個key的sha1值和發佈key的sha1值一樣。
5. 拷貝這個key到同事的機器上,並設置custom keystore爲這個key