因為一些原因,要給未簽名的apk重新簽名,需要用到j(luò)arsigner工具,但是簽名之后,apk無法安裝,百思不得其解。終于找到一個解決方案,現(xiàn)在分享給大家:
在簽名時,要加上2個參數(shù):
-digestalg SHA1 -sigalg MD5withRSA
造成無法簽名錯誤的原因,初步估計是JDK版本的問題。JDK 1.6簽名沒事,但是1.7會出這個問題。
完整的簽名命令如下:
jarsigner -verbose -keystore feelyou.keystore -storepass feelyou.info -signedjar signed.apk -digestalg SHA1 -sigalg MD5withRSA unsigned.apk feelyou
解釋:
1、-keystore feelyou.keystore:指定需要使用的簽名文件,直接寫文件名說明在當(dāng)前目錄下,否則請自行指定具體路徑
2、-storepass feelyou.info:自動輸入密碼,keystore的密碼和alias的密碼都是我用的都是feelyou.info
3、-signedjar signed.apk:指定簽名后的文件存儲路徑,這里是說以signed.apk的文件名存在當(dāng)前路徑下
4、-digestalg SHA1 -sigalg MD5withRSA:這就是必須加上的參數(shù),如果你是jdk 1.6也不受影響
5、unsigned.apk:未簽名的apk路徑,這里是當(dāng)前路徑下的unsigned.apk文件
6、feelyou:最后這個是alias