继上篇了解了“指定设备发布”的整体流程和适用场景后,本文继续介绍打包前的配置准备和DevEco Studio中的编译打包。

一、打包配置文件

打包前需要准备以下三类文件,用于对应用进行签名,保证完整性和来源真实性。

1. 密钥和证书请求文件(.p12 + .csr)

项目说明
文件格式密钥文件为 .p12,证书请求文件为 .csr(全称 Certificate Signing Request)
密钥文件(.p12)作用包含非对称加密中的公钥和私钥,存储在密钥库文件中,用于数字签名和验证
证书请求文件(.csr)作用包含密钥对中的公钥以及公共名称、组织名称、组织单位等信息,用于申请发布证书

提醒 :务必保存好密钥文件,以及生成过程中设置的别名、密钥库密码、密钥密码。

2. 发布证书(.cer)

项目说明
文件格式.cer
是什么AGC 颁发的数字证书,用于验证应用的身份和签名
操作申请发布证书后,下载到本地保存

说明:企业开发者(In-house 应用分发)无法申请发布证书,可使用 In-house 发布证书 用于指定设备发布。

3. 指定设备发布 Profile(.p7b)

项目说明
文件格式.p7b
包含内容包名、数字证书信息、申请的权限列表、设备列表等信息
操作申请指定设备发布 Profile 后,下载到本地保存

二、编译打包应用(DevEco Studio 操作)

准备好上述配置文件后,开始在 DevEco Studio 中配置签名信息并编译打包。

步骤一:配置工程签名信息

  1. 打开 DevEco Studio,顶部菜单栏选择 File > Project Structure,进入工程结构界面

  2. 导航选择 Project,点击 Signing Configs 页签

  3. 取消 “Automatically generate signature” 勾选项(即关闭自动签名)

  4. 手动配置以下签名信息,完成后点击 OK:

配置项说明注意事项
Store file密钥文件选择之前准备好的 .p12 文件
Store password密钥库密码需与生成密钥时设置的密钥库密码保持一致
Key alias密钥别名需与生成密钥时设置的别名保持一致
Key password密钥密码需与生成密钥时设置的密码保持一致
Sign alg签名算法固定设置为 SHA256withECDSA
Profile fileProfile 文件选择准备好的指定设备发布 Profile(.p7b)
Certpath file发布证书文件选择准备好的发布证书(.cer)

步骤二:分别编译各 Module

说明:指定设备发布仅支持编译 HAP 和应用内 HSP 包。

编译 HAP 包
  1. 菜单栏选择 Build > Build Hap(s)/APP(s) > Build Hap(s)

  2. 等待编译构建完成

  3. 构建完成后,在各模块的 build > default > outputs > default 目录下,获取到 XXX-signed.hap 文件

编译 HSP 包(仅支持应用内 HSP 包)
  1. 选中待编译共享包模块

  2. 菜单栏选择 Build > Make Module ${libraryName}(即构建该共享包模块)

  3. 等待编译构建完成

  4. 构建完成后,在共享包模块的 build > default > outputs > default 目录下,获取到 *.hsp 文件

三、其他事项

  1. 三件套缺一不可:.p12(密钥) + .cer(发布证书) + .p7b(Profile),少一个都签不了名。

  2. 企业开发者走特殊通道:普通发布证书申请不了,要用 In-house 发布证书,别搞混。

  3. 密码和别名必须一致:配置签名时填的 Store password、Key alias、Key password 必须和生成密钥时完全一致,否则签名失败。

  4. Sign alg 是固定的:不要乱选,文档明确是 SHA256withECDSA。

  5. 输出目录统一:HAP 和 HSP 都输出在 build/default/outputs/default/ 下,记住这个路径方便找包。

  6. HSP 只支持应用内共享包,别想着打独立的 HSP 出去。

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐