修改Android簽名證書keystore做爲eclipse默認debug簽名證書

http://blog.k-res.net/archives/1229.htmlhtml

http://blog.csdn.net/superbigcupid/article/details/48230675android

 

 

(一)eclipse默認debugkeystore格式要求

 

最近開始研究Google Play的In-app Billing IAB內置計費API,發現一個比較煩人的問題就是測試時應用必須通過正式簽名(其實接入各類SDK時,不少開放平臺都須要簽名的),而默認Eclipse ADT調試運行使用的是臨時生成的Debug專用證書,默認爲C:\Users\XXX\.android\debug.keystoreapp

因而每次調試內置計費必須使用ADT的Export Signed Application Package打帶正式簽名的包,比較麻煩。後來發現ADT容許自定義調試用證書,在Window->Preferences->Android->Build->Custom debugkeystore這裏,試了一下選擇正式證書後提示:」Keystore was tampered with, or password was incorrect」,以下圖所示:

QQ20130308142554
其實這個界面並無提供輸入Keystore密碼,選擇別名之類的地方,因此就感到很是奇怪了,查了一下官方文檔發現,即便是自定義的調試證書,也須要保證和默認證書同樣的密碼,別名alias和別名密碼。
eclipse

文檔中提到的默認證書信息以下:工具

Keystore name: 「debug.keystore
Keystore password: 「android
Key alias: 「androiddebugkey」
Key password: 「android」
CN: 「CN=Android Debug,O=Android,C=US」
post

遵循這個規則就能夠用自定義調試證書了。不過仔細想一想感受這功能這樣非常雞肋,但願之後版本的ADT會改進吧。測試

(二)開工操做

自定義調試證書的密碼和alias命名以及alias密碼都是有規矩的。其實Android應用開發接入各類SDK時會發現,有不少SDK是須要靠package name和keystore的指紋hash來識別的(百度地圖SDK、Facebook SDK等等…),這樣若是使用默認自動生成的debugkeystore的話就會給開發調試工做帶來一些麻煩。這時能夠經過修改正式的release keystore,生成一份「遵照規矩」的臨時自定義調試證書給開發時用,就方便多了,具體方法以下:ui

 

1. 首先固然是先複製一份正式證書出來做爲要修改成的臨時調試證書。spa

2. 修改keystore密碼的命令(keytool爲JDK帶的命令行工具):.net

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的密碼。(注意在2.中已經修改密碼爲android)

4. 修改alias的密碼:

keytool -keypasswd -keystore my.keystore -alias androiddebugkey

這一步執行後會提示輸入keystore密碼,alias密碼,而後提示輸入新的alias密碼,一樣,按規矩來,改成android!(注意在2.中已經修改密碼爲android)

以上幾個操做執行後,my.keystore就是符合規矩的debug keystore了,接着在Eclipse的ADT設置中選中這個custom debug keystore便可,以下(而後apply就能夠了):

sdk-an5

同時還能夠看到證書的MD5以及SHA1指紋。

PS:以上3步命令行並無前後順序。

相關文章
相關標籤/搜索