Android在對應用加固之後,會破壞原有的簽名,需要重新簽名才能發佈到應用市場,本篇談一談如何對已加固的應用進行簽名。
1、所需原料:
已加固的apk、簽名文件
2、本地JDK環境,如果沒有,請安裝。以下操作全部在jdk的bin目錄中完成。
3、進入到jdk的bin安裝目錄,進入powershell窗口(shift+右鍵),執行如下命令:
jarsigner -verbose -keystore xxx.keystore -signedjar myapp-release.apk myapp.apk xxx.keystore
-verbose:指定生成詳細輸出 -keystore:指定數字證書存儲路徑
-signedjar:該選項的三個參數爲 :簽名後的apk包、 未簽名的apk包、 數字證書別名
回車之後,會提示你輸入祕鑰庫的密碼短語,即簽名文件的密碼
然後既可以得到簽名之後的apk包了。
4、通過腳本執行。
像我這麼懶的開發,每次都讓我去輸這麼一行代碼,我肯定不樂意了,那麼,既然這個代碼不會改動,就寫個腳本跑跑吧。你需要注意的一點就是,每次加固後修改apk的名字跟腳本中的名字一致就行了。
如果你是在win : 新建一個bat腳本。xxx.bat
如果你是在linux : 新建一個shell腳本。xxx.sh
以win爲例:
腳本里面就寫入上面的那行代碼。注意腳本寫在jdk的bin目錄裏面。雙擊腳本(是的,只需要雙擊):
輸入簽名文件密碼,看到這種情況,你就可以放心了!腳本執行完之後,bin目錄裏就生成了簽名包。
5、如何獲取數字證書別名
在powershell中,執行代碼:
keytool -list -v -keystore xxx.keystore -storepass ***
-keystore : 簽名文件
-storepass : 簽名文件密碼