共用方式為


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 命令的螢幕擷取畫面。

參數解釋:

參數 Description
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 命令的螢幕擷取畫面。

參數解釋:

參數 Description
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

參數解釋:

參數 Description
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

散發應用程式

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

分發選項

另請參閱