Android 程式如果只是做開發的測試,
可以直接在手機或模擬器上執行。
但若是要發佈成 APK 檔,
不論是 debug 或是 release 版本,
都需要簽署過才能封裝。
以下進行 Android 程式的簽署教學,挑選以下二擇一即可 A. 手動簽署 或是 B. Android Studio 簽署:
A. 手動簽署
這個程序需要 JDK 的 keytool (建立密鑰)及 jarsigner (簽署)工具,可以在 JDK 安裝目錄下的 bin 目錄找到,
一般如果安裝完 JDK,且有設定好 PATH 參數,應該開啟 console 視窗時就可以執行。
以我的路徑來看,它存放在 C:\Program Files\Java\jdk1.8.0_181\bin 目錄內。
- 首先要建立密鑰。在要建立密鑰的資料夾內,比如 D:\key,使用以下指令生成密鑰。
keytool -genkey -v -keystore <密鑰文件檔> -storepass <密鑰文件檔密碼> -alias <密鑰名稱> -keyalg RSA -storetype pkcs12 -keysize 2048 -validity <有效天數>
密鑰文件檔:有自己的密碼,裏面可以存放多筆密鑰。
密鑰文件檔密碼:存取密鑰時會用到,長度需要六碼以上。
密鑰名稱:有自己的密碼,以名稱來識別。
有效天數:密鑰的有效時間。
RSA:加密方式。
pkcs12:業界常用的儲存密鑰格式。
- 檢查密鑰內容。
keytool -list -keystore <密鑰文件檔>
- 在要簽署的 APK 資料夾內,執行以下的指令。
jarsigner -verbose -sigalg <簽署演算法> -digestalg SHA1 -keystore <密鑰文件檔> -signedjar <產出的已簽署 APK 檔名> <要簽署的 APK 檔> <密鑰名稱>
簽署演算法:可以在 https://developer.android.com/training/articles/keystore#SupportedKeyPairGenerators 網址找到,有些可能已經不被認可,比如:MD5withRSA。
- 檢查簽署是否正常,執行以下指令。
jarsigner -verify <已簽署的 APK 檔>
B. Android Studio 簽署
- 在 Android Studio 的選單功能選取 Build > Generate Signed Bundle / APK...
- Generate Signed Bundle or APK
若是挑選 Android App Bundle,則在下一頁會有多一個 Export encrypted key 的選項,如下圖。
- 本範例單純生產 APK,點 Create new... 建立新的密鑰文件檔,若已有文件檔則點 Choose existing... 找出該檔案即可。
輸入相關資料後點 OK 建立。
- 挑選要套用的專案及建置的版本,設定完成後按 Finish。
下次發佈 APK 完成時,右下角就會顯示就會產出簽署過的 APK 檔了。
KeyStore 補充資料網址:https://developer.android.com/training/articles/keystore
文章標籤
全站熱搜
留言列表