IONIC 開發的Android應用程序簽名(或重新簽名)詳解


完全通過DOS命令來完成apk簽名

給apk簽名一共要用到3個工具,或者說3個命令,分別是:keytool、jarsigner和zipalign,下面是對這3個工具的簡單介紹:
            1)keytool:生成數字證書,即密鑰,也就是上面說到的擴展名為.keystore的那類文件;
            2)jarsigner:使用數字證書給apk文件簽名;
            3)zipalign:對簽名后的apk進行優化,提高與Android系統交互的效率(Android SDK1.6版本開始包含此工具)
      從這3個工具的作用也可以看出,這3個工具的使用順序。通常我們自己所開發的所有應用程序,都是使用同樣的簽名,即使用同一個數字證書,這就意味着:如果 你是第一次做Android應用程序簽名,上面的3個工具都將用到;但如果你已經有數字證書了,以后再給其它apk簽名時,只需要用到jarsigner 和zipalign就可以完成。
      為了方便使用上面3個命令,首先需要將上面3個工具所在路徑添加到環境變量path中(我說的是為了方便使用,沒有說必須要這么做)。怎么配置環境變量就不在此講解了,這里需要說一下這3個工具默認所在的路徑:
            1)keytool:該工具位於jdk安裝路徑的bin目錄下;
            2)jarsigner:該工具位於jdk安裝路徑的bin目錄下;
            3)zipalign:該工具位於android-sdk-windows/tools/目錄下
      不知道大家是否注意到keytool和jarsigner兩個工具是jdk自帶的,也就意味着生成數字證書和文件簽名不是Android的專利;另外從字面上理解jarsigner也能猜得出該工具主要是用來給jar文件簽名的。

1》使用keytool工具生成數字證書
      keytool -genkey -v -keystore liufeng.keystore -alias liufeng.keystore -keyalg RSA -validity 20000
說明:
      1)keytool是工具名稱,-genkey意味着執行的是生成數字證書操作,-v表示將生成證書的詳細信息打印出來,顯示在dos窗口中;
      2)-keystore liufeng.keystore 表示生成的數字證書的文件名為“liufeng.keystore”;
      3)-alias liufeng.keystore 表示證書的別名為“liufeng.keystore”,當然可以不和上面的文件名一樣;
      4)-keyalg RSA 表示生成密鑰文件所采用的算法為RSA;
      5)-validity 20000 表示該數字證書的有效期為20000天,意味着20000天之后該證書將失效
在執行上面的命令生成數字證書文件時,會提示你輸入一些信息,包括證書的密碼,示例如下:
     
2》使用jarsigner工具為Android應用程序簽名
      jarsigner -verbose -keystore liufeng.keystore -signedjar notepad_signed.apk notepad.apk liufeng.keystore
說明:
      1)jarsigner是工具名稱,-verbose表示將簽名過程中的詳細信息打印出來,顯示在dos窗口中;
      2)-keystore liufeng.keystore 表示簽名所使用的數字證書所在位置,這里沒有寫路徑,表示在當前目錄下;
      3)-signedjar notepad_signed.apk notepad.apk 表示給notepad.apk文件簽名,簽名后的文件名稱為notepad_signed.apk;
      4)最后面的liufeng.keystore 表示證書的別名,對應於生成數字證書時-alias參數后面的名稱
3》使用zipalign工具優化已簽名的apk(非必須但建議這么做)
      zipalign -v 4 notepad_signed.apk notepad_signed_aligned.apk
說明:
      1)zipalign是工具名稱,-v表示在DOS窗口打印出詳細的優化信息;
      2)notepad_signed.apk notepad_signed_aligned.apk 表示對已簽名文件notepad_signed.apk進行優化,優化后的文件名為notepad_signed_aligned.apk

說明:如果你以前的程序是采用默認簽名的方式(即debug簽名),一旦換了新的簽名應用將不能覆蓋安裝,必須將原先的程序卸載掉,才能安裝上。


免責聲明!

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



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