继上篇了解了“指定设备发布”的整体流程和适用场景后,本文继续介绍打包前的配置准备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

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐