android eclipse 設置及修改生成apk的簽名文件
1、
問題:
平時在使用eclipse進行android project開發時,由於每個項目組都有自身的簽名,
但默認Eclipse ADT調試運行使用的是臨時生成的Debug專用證書,默認爲C:\Users\XXX\.android\debug.keystore。
於是每次調試程序必須使用ADT的Export Signed Application Package打帶正式簽名的包,或者另寫重新簽名腳本,比較麻煩。
後來發現ADT允許自定義調試用證書,在Window->Preferences->Android->Build->Custom debug keystore這裏,
試了一下選擇正式證書後提示:”Keystore was tampered with, or password was incorrect”
其實這個界面並沒有提供輸入Keystore密碼,選擇別名之類的地方,所以就感到非常奇怪了,查了一下官方文檔發現,即使是自定義的調試證書,也需要保證和默認證書一樣的密碼,別名alias和別名密碼。
文檔中提到的默認證書信息如下:
Keystore name: “debug.keystore”
Keystore password: “android”
Key alias: “androiddebugkey”
Key password: “android”
CN: “CN=Android Debug,O=Android,C=US”
遵循這個規則就可以用自定義調試證書了。不過仔細想想感覺這功能這樣很是雞肋,希望以後版本的ADT會改進吧。
解決:
按照android默認證書規範,更改項目的簽名文件的密碼,別名和別名密碼。然後將 "Custom debug keystore" 設置爲修改過後的簽名文件
方式:
1. 首先當然是先複製一份正式證書出來作爲要修改爲的臨時調試證書。
2. 修改keystore密碼的命令(keytool爲JDK帶的命令行工具):
keytool -storepasswd -keystore my.keystore
其中,my.keystore是複製出來的證書文件,執行後會提示輸入證書的當前密碼,和新密碼以及重複新密碼確認。這一步需要將密碼改爲android。
3. 修改keystore的alias:
keytool -changealias -keystore my.keystore -alias my_name -destalias androiddebugkey
這一步中,my_name是證書中當前的alias,-destalias指定的是要修改爲的alias,這裏按規矩來,改爲androiddebugkey!這個命令會先後提示輸入keystore的密碼和當前alias的密碼。
4. 修改alias的密碼:
keytool -keypasswd -keystore my.keystore -alias androiddebugkey
這一步執行後會提示輸入keystore密碼,alias密碼,然後提示輸入新的alias密碼,同樣,按規矩來,改爲android!
參考:http://blog.k-res.net/archives/1671.html