本文说明如何手动对您的 Android(APK)应用进行签名,以便 Power Apps 整合。 如果您在创建和构建整合项目时选择了 Android 作为平台之一,则为 Android 应用签名。
重要提示
要签署 AAB 应用以进行 Google Play 分发,请参阅签署您的应用。
准备工作
所需软件
在开始之前,请安装并设置:
- Android Studio
- 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)添加到 PATH 中。
- 将
手动签名流程
生成签名哈希密钥和证书
在命令提示符中运行此命令:
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 | 每个密钥的大小 |
| 有效期 | 密钥的有效期(以天为单位) |
| 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 | 每个密钥的大小。 |
| 有效期 | 密钥的有效期(以天为单位)。 |
| exportcert | 从密钥库读取证书 |
| openssl | 为 Android 生成 SHA1 密钥 |
手动对 APK 包进行签名(不用于 KV 签名)
如果在整合过程中不使用自动登录,或者尝试上传 AAB 文件到 Play Store,请按照以下步骤操作。 若要避免重复此过程,请尽可能使用自动登录。
找到 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 分发给用户进行手动安装。