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 目錄內。

  1. 首先要建立密鑰。在要建立密鑰的資料夾內,比如 D:\key,使用以下指令生成密鑰。
    keytool -genkey -v -keystore <密鑰文件檔> -storepass <密鑰文件檔密碼> -alias <密鑰名稱> -keyalg RSA -storetype pkcs12 -keysize 2048 -validity <有效天數>
    密鑰文件檔:有自己的密碼,裏面可以存放多筆密鑰。
    密鑰文件檔密碼:存取密鑰時會用到,長度需要六碼以上。
    密鑰名稱:有自己的密碼,以名稱來識別。
    有效天數:密鑰的有效時間。
    RSA:加密方式。
    pkcs12:業界常用的儲存密鑰格式。
  2. 檢查密鑰內容。
    keytool -list -keystore <密鑰文件檔>
  3. 在要簽署的 APK 資料夾內,執行以下的指令。
    jarsigner -verbose -sigalg <簽署演算法> -digestalg SHA1 -keystore <密鑰文件檔> -signedjar <產出的已簽署 APK 檔名> <要簽署的 APK 檔> <密鑰名稱>
    簽署演算法:可以在 https://developer.android.com/training/articles/keystore#SupportedKeyPairGenerators 網址找到,有些可能已經不被認可,比如:MD5withRSA。

  4. 檢查簽署是否正常,執行以下指令。
    jarsigner -verify <已簽署的 APK 檔>

B. Android Studio 簽署

  1. 在 Android Studio 的選單功能選取 Build > Generate Signed Bundle / APK...
  2. Generate Signed Bundle or APK

    若是挑選 Android App Bundle,則在下一頁會有多一個 Export encrypted key 的選項,如下圖。
  3. 本範例單純生產 APK,點 Create new... 建立新的密鑰文件檔,若已有文件檔則點 Choose existing... 找出該檔案即可。

    輸入相關資料後點 OK 建立。
  4. 挑選要套用的專案及建置的版本,設定完成後按 Finish。

    下次發佈 APK 完成時,右下角就會顯示就會產出簽署過的 APK 檔了。

KeyStore 補充資料網址:https://developer.android.com/training/articles/keystore

    ET 發表在 痞客邦 留言(0) 人氣()