使用命令列簽名Android應用程式
阿新 • • 發佈:2019-01-22
在Android程式開發基於完成後,需要對未簽名的應用進行簽名後才可釋出。這樣做的目的是能夠更安全的保護你的應用程式。這裡,就說一下不使用IDE,基於命令列的方式對APK檔案進行簽名。
第一步:生成RSA金鑰對
keytool -genkeypair -alias magick.keystore -keyalg RSA -validity 400 -keystore magick.keystore
-genkeypair 指定生成金鑰對
-alias 金鑰對的別名
-keyalg 金鑰對用於的演算法,這裡用的是RSA
-validity 金鑰對的有效期,單位為天
-keystore 金鑰對儲存的檔名
輸入後,根據提示輸入相應的內容就好了。
第二步:生成未簽名的apk檔案
這個就隨便生成一下了,比如在ant debug後,會生成一個 403Bible-debug.apk 檔案,這個是採用除錯簽名的,一般未簽名的檔案是含有unsigned的。
第三步:對未簽名的apk進行簽名
jarsigner -verbose -keystore magick.keystore -signedjar Magick.apk Magick_unsigned.apk magick.keystore
-verbose 輸出簽名詳細資訊
-keystore 指定金鑰對的儲存路徑
-signedjar 後面三個引數分別是 簽名後的APK包 未簽名的APK包 和 金鑰對的別名
簽名時,會要求輸入金鑰對的密碼,這個是你在生成金鑰時輸入的密碼
第四部:優化apk包
這一步是可選的,用來將apk包進行整理,以適應裝置的讀取等
zipalign -f -v 4 Magick.apk Magick_zip.apk
-f 強制覆蓋已有的檔案
-v 輸出詳細內容
4 指定檔案整理的位元組數,一般為4,及32位。如果以後android的裝置有64位的,可能要改成8吧。
Magick.apk 是未整理的apk檔名
Magick_zip.apk 是整理後的apk檔名
至此使用命令列對android應用的釋出以及優化就算完成了。
第一步:生成RSA金鑰對
keytool -genkeypair -alias magick.keystore -keyalg RSA -validity 400 -keystore magick.keystore
-genkeypair 指定生成金鑰對
-alias 金鑰對的別名
-keyalg 金鑰對用於的演算法,這裡用的是RSA
-validity 金鑰對的有效期,單位為天
-keystore 金鑰對儲存的檔名
輸入後,根據提示輸入相應的內容就好了。
第二步:生成未簽名的apk檔案
這個就隨便生成一下了,比如在ant debug後,會生成一個 403Bible-debug.apk 檔案,這個是採用除錯簽名的,一般未簽名的檔案是含有unsigned的。
第三步:對未簽名的apk進行簽名
jarsigner -verbose -keystore magick.keystore -signedjar Magick.apk Magick_unsigned.apk magick.keystore
-verbose 輸出簽名詳細資訊
-keystore 指定金鑰對的儲存路徑
-signedjar 後面三個引數分別是 簽名後的APK包 未簽名的APK包 和 金鑰對的別名
簽名時,會要求輸入金鑰對的密碼,這個是你在生成金鑰時輸入的密碼
第四部:優化apk包
這一步是可選的,用來將apk包進行整理,以適應裝置的讀取等
zipalign -f -v 4 Magick.apk Magick_zip.apk
-f 強制覆蓋已有的檔案
-v 輸出詳細內容
4 指定檔案整理的位元組數,一般為4,及32位。如果以後android的裝置有64位的,可能要改成8吧。
Magick.apk 是未整理的apk檔名
Magick_zip.apk 是整理後的apk檔名
至此使用命令列對android應用的釋出以及優化就算完成了。