android keystore相關


android要求所有的程序必須有簽名,否則就不會安裝該程序。在我們開發過程中,adt使用debug keystore,在 preference->android->buid中設置。debug的keystore默認有效期為一年,如果你是從一年前開始開發 android程序,那么很可能出現debug keystore過期,導致你無法生成 apk文件。我調了一下系統時間,就出現以下錯誤。此時你只要刪除debug keystore就行,系統又會為你生成有效期為一年的私鑰。
當debug keystore過期,會出現如下的錯誤:
Error generating final archive: Debug Certificate expired on…
debug keystore刪除方法:
進入C:\Documents and Settings\Administrator\.android 刪除路徑下的debug.keystore及 ddms.cfg。
(不同環境下的目錄可能略有不同,可在eclipse中查找此路徑:Window->Preferences->Android->Build下 Default debug keystore)
然后重新導入即可。

ubuntu環境下的解決辦法:  rm -rf  ~/.android/debug.keystore

當你release時,你可以用 右擊項目->android tools->export signed android package生成簽名的包。再此過程中,如果你還沒有你自己的私鑰,adt會自動調用 keytool 來為你生成。請保護好你的私鑰,否則被人盜用的話,就用攻擊你的簽名程序了。
release前還應注意版本號,在manifest.xml中有兩個字段android:versionCode="1"和 android:versionName="1.0",其中前者是給程序或者android使用,以1遞增。后者是給用戶看的,在這里你就可以使用主版本 號 次版本號 build號等字符串。
---------------------------------------
keystore的生成:
cmd下:
進入到jdk的bin目錄,這樣的話,android.keystore文件就會生成在這個目錄下,簽名的時候我們需要這個文件
D:\Program Files\Java\jdk1.6.0_20\bin>keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore
輸入keystore密碼:
再次輸入新密碼:
您的名字與姓氏是什么?
  [Unknown]:  qiaoling您的組織單位名稱是什么?
  [Unknown]:  www.chinaandroid.com
您的組織名稱是什么?
  [Unknown]:  www.chinaandroid.com
您所在的城市或區域名稱是什么?
  [Unknown]:  haidian
您所在的州或省份名稱是什么?
  [Unknown]:  BJ
該單位的兩字母國家代碼是什么
  [Unknown]:  86
CN=qiaoling, OU=www.chinaandroid.com, O=www.chinaandroid.com, L=haidian, ST=BJ, C=86 正確嗎?
  [否]:  Y
輸入<android.keystore>的主密碼(如果和 keystore 密碼相同,按回車):
其中參數-validity為證書有效天數,這里我們寫的大些10000天。還有在輸入密碼時沒有回顯(盡管輸就是啦) 並且 退格,tab等都屬於密碼內容,這個密碼在給.apk文件簽名的時候需要.


然后簽名:
Eclipse中,右擊需要簽名的工程-->android tools-->export signed application package...
出現下面對話框,選擇需要簽名的工程
next,選擇上面生成的android.keystore文件位置和設置的密碼
next
next,選擇簽名生成文件的位置和名稱
------------------------------------------


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM