本文介紹如何為 Power Apps 包裝手動對 Android (APK) 應用程式進行程式碼簽署。 如果您在建立和建置包裝專案時選擇 Android 作為平台之一,請為 Android 簽署您的應用程式。
重要
若要為 Google Play 分發簽署 AAB 應用程式,請參閱簽署您的應用程式。
開始之前
所需軟體
開始之前,請安裝並設定:
- Android 工作室
- OpenSSL
- apksigner 工具 (內含 Android Studio)
必要條件
您需要:
- 建立雜湊金鑰的應用程式名稱。
- 用於登入的最新 APK 檔案。
注意
使用 .jks 擴充功能進行手動簽署,使用 .pfx 擴充功能進行自動簽署。
產生金鑰和簽章雜湊
設定環境變數
如果不設定環境變數:
- 下載並安裝 Android Studio 害 OpenSSL。
- 新增
keytool和openssl到您的 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
出現提示時:
- 輸入您的金鑰庫的密碼。
- 輸入您的名稱、組織、位置和其他所需的詳細資訊。
- 確認訊息。
執行此命令來產生金鑰和憑證:
keytool -exportcert -alias powerappswrap -keystore powerappswrap.jks | openssl sha1 -binary | openssl base64
出現提示時,輸入您先前建立的金鑰庫密碼。
參數解釋:
| 參數 | Description |
|---|---|
| genkey | 產生金鑰的命令 |
| 別名 | 金鑰庫項目的別名 |
| keyalg | 金鑰演算法名稱 |
| keystore | 金鑰儲存區的名稱 |
| keysize | 每個鍵的大小 |
| validity | 金鑰的有效期限 (以天為單位) |
| exportcert | 從金鑰儲存區讀取憑證 |
| openssl | 產生 Android 的 SHA1 金鑰 |
對於自動金鑰保存庫簽署過程
產生簽章雜湊金鑰和憑證
在命令提示字元中執行此命令:
keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.pfx -keysize 2048 -validity 10000
出現提示時:
- 輸入您的金鑰庫的密碼。
- 輸入您的名稱、組織、位置和其他所需的詳細資訊。
- 確認訊息。
執行此命令來產生金鑰和憑證:
keytool -exportcert -alias powerappswrap -keystore powerappswrap.pfx | openssl sha1 -binary | openssl base64
出現提示時,輸入您先前建立的金鑰庫密碼。
參數解釋:
| 參數 | Description |
|---|---|
| genkey | 產生金鑰。 |
| 別名 | 金鑰庫項目的別名。 |
| keyalg | 金鑰演算法名稱。 |
| keystore | 金鑰庫的名稱。 |
| keysize | 每個鍵的大小。 |
| validity | 金鑰的有效期限 (天)。 |
| exportcert | 從金鑰儲存區讀取憑證 |
| openssl | 產生 Android 的 SHA1 金鑰 |
APK 套件手動簽章 (不適用於 KV 簽章)
如果您在包裝期間不使用自動登錄,或嘗試為 Play Store 上傳 AAB 檔案,請按照以下步驟操作。 為了避免重複此過程,請盡可能使用自動登入。
找到 apksigner 工具
- 開啟 [Android Studio]。
- 前往 工具>SDK 管理員>Android SDK 位置 以尋找您的 SDK 路徑。
- 在 SDK 目錄中,導覽至:
- build-tools>[版本號碼]> 尋找 apksigner.bat (Windows) 或 apksigner (Mac/Linux)
- 或:build-tools>[版本號碼]>lib> 尋找 apksigner.jar
簽署 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。
散發應用程式
對應用程式進行簽署後,您可以使用多種方法分發它:
分發選項
Microsoft Intune:若要使用 Microsoft Intune 進行分發,請參閱將 Android 企業營運應用程式新增至 Microsoft Intune。
Intune 應用程式保護:若要授予應用程式存取 Intune 應用程式保護服務的權限,請參閱授予應用程式存取 Intune 應用程式保護服務的權限。
直接分發:您也可以將簽署的 APK 直接分發給使用者進行手動安裝。