Android 程式碼簽署

本文說明如何為 Power Apps 裝合手動進行 Android (APK) 應用程式的程式碼簽署。 如果在建立和建置裝合專案時選取 Android 做為其中一個平台,請簽署 Android 的應用程式。

重要

若要為 Google Play 分發的 AAB 應用程式簽名,請參閱簽署您的應用程式

開始之前

所需軟體

開始之前,請安裝並設定:

必要條件

您需要:

  • 建立雜湊金鑰的應用程式名稱。
  • 用於登入的最新 APK 檔案。

注意

使用 .jks 擴充功能進行手動簽署,使用 .pfx 擴充功能進行自動簽署。

產生金鑰和簽名雜湊

注意

如果您已經在建立應用程式註冊時產生金鑰和簽章雜湊,請跳至手動簽署

設定環境變數

如果不設定環境變數:

  1. 下載並安裝 Android Studio 和 OpenSSL。
  2. 新增 keytoolopenssl 到您的 PATH 環境變數:
    • 新增 C:\Program Files\Android\Android Studio\jbr\bin 到您的 PATH。
    • openssl.exe 的路徑 (例如 C:\Program Files\OpenSSL-Win64\bin) 新增至您的路徑。

手動簽署程序

產生簽章雜湊金鑰和憑證

在命令提示字元中執行此命令:

keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.jks -keysize 2048 -validity 10000

出現提示時:

  1. 輸入您的金鑰庫的密碼。
  2. 輸入您的名稱、組織、位置和其他所需的詳細資訊。
  3. 確認訊息。

執行此命令來產生金鑰和憑證:

keytool -exportcert -alias powerappswrap -keystore powerappswrap.jks | openssl sha1 -binary | openssl base64

出現提示時,輸入您先前建立的金鑰庫密碼。

使用前面範例中的參數的 keytool 命令的螢幕擷取畫面。

參數解釋:

參數 描述
genkey 產生金鑰的命令
別名 金鑰儲存區項目的別名
keyalg 金鑰演算法名稱
keystore 金鑰儲存區的名稱
keysize 每個鍵的大小
validity 金鑰的有效期限 (以天為單位)
exportcert 從金鑰儲存區讀取憑證
openssl 產生 Android 的 SHA1 金鑰

自動金鑰保存庫簽署程序

產生簽章雜湊金鑰和憑證

在命令提示字元中執行此命令:

keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.pfx -keysize 2048 -validity 10000

出現提示時:

  1. 輸入您的金鑰庫的密碼。
  2. 輸入您的名稱、組織、位置和其他所需的詳細資訊。
  3. 確認訊息。

執行此命令來產生金鑰和憑證:

keytool -exportcert -alias powerappswrap -keystore powerappswrap.pfx | openssl sha1 -binary | openssl base64

出現提示時,輸入您先前建立的金鑰庫密碼。

使用前面範例中的參數的 keytool 命令的螢幕擷取畫面。

參數解釋:

參數 描述
genkey 產生金鑰。
別名 金鑰庫項目的別名。
keyalg 金鑰演算法名稱。
keystore 金鑰庫的名稱。
keysize 每個鍵的大小。
validity 金鑰的有效期限 (天)。
exportcert 從金鑰儲存區讀取憑證
openssl 產生 Android 的 SHA1 金鑰

APK 套件手動簽章 (不適用於 KV 簽章)

如果您在包裝期間不使用自動登錄,或嘗試為 Play Store 上傳 AAB 檔案,請按照以下步驟操作。 為了避免重複此過程,請盡可能使用自動登入。

找到 apksigner 工具

  1. 開啟 [Android Studio]。
  2. 前往 工具>SDK 管理員>Android SDK 位置 以尋找您的 SDK 路徑。
  3. 在 SDK 目錄中,導覽至:
    • build-tools>[版本號碼]> 尋找 apksigner.bat (Windows) 或 apksigner (Mac/Linux)
    • 或:build-tools>[版本號碼]>lib> 尋找 apksigner.jar

包含 apksigner 位置資訊的螢幕擷取畫面。

簽署 APK 檔案

執行此命令來簽署您的 APK:

apksigner.bat sign --ks PATH_TO_KEYSTORE --ks-key-alias KEY_ALIAS PATH_TO_APK

參數解釋:

參數 描述
ks 金鑰儲存區檔案的路徑 (例如,C:\Users\name\Desktop\powerappswrap.jks)
ks-key-alias 產生金鑰時使用的別名 (例如,powerappswrap)
PATH_TO_APK APK 檔案的完整路徑 (例如 C:\Users\name\Downloads\MyApp.apk)

出現提示時,輸入金鑰庫密碼。

範例:

apksigner.bat sign --ks C:\Users\name\Desktop\powerappswrap.jks --ks-key-alias powerappswrap C:\Users\name\Desktop\MyApp.apk

驗證簽章

簽署後,使用以下命令驗證 APK 簽章:

apksigner.bat verify --verbose PATH_TO_APK

驗證成功即表示您的 APK 已正確簽署並可供分發。

如需詳細資訊 ,請參閱 Android Studio命令列工具:apksigner

散發應用程式

對應用程式進行簽署後,您可以使用多種方法分發它:

分發選項

另請參閱