序
對于android應用來說,發布release版本的時候,需要有個正式的簽名,這個時候就需要用到jarsigner命令了。
步驟
- sign
簽名就是根據keystore去給apk加上簽名,需要注意的是debug版本的apk會自動加簽名 - align
align就是對apk包進行一次優化
jarsigner
檢測jar包是否已經簽名
jarsigner -verify demo-unsigned.apk
如果沒有簽名,則輸出
沒有清單。
jar 未簽名。(缺少簽名或無法解析簽名)
如果有簽名,則輸出
jar 已驗證。
警告:
此 jar 包含證書鏈未驗證的條目。
此 jar 包含的簽名沒有時間戳。如果沒有時間戳, 則在簽名者證書的到期日期 (2020-01-13) 或以后的任何撤銷日期之后, 用戶可能無法驗證此 jar。
有關詳細信息, 請使用 -verbose 和 -certs 選項重新運行。
進行簽名
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 \
-keystore /Users/mars/demok.keystore -storepass keystorepwd \
demo-unsigned.apk demok \
&& jarsigner -verify -verbose -certs demo-unsigned.apk
其中demok為keystore的別名
align
zipalign -v 4 demo-unsigned.apk demo-signed.apk
合并在一起的命令就是
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 \
-keystore /Users/mars/demok.keystore -storepass keystorepwd \
demo-unsigned.apk demok \
&& jarsigner -verify -verbose -certs demo-unsigned.apk \
&& zipalign -v 4 demo-unsigned.apk demo-signed.apk