Harmony 鸿蒙项目:signingConfigs 签名:申请发布证书、动态修改编译配置、GitLab Runner CI/CD 流水线

文档

配置





















动态配置构建

证书与密钥说明

  1. 由于配置文件 build-profile.json5 中的 signingConfigs 密码基于 material 配置,代码提交时,需要将 material 文件夹也提交。material 目录与证书同级
  2. 由于 build-profile.json5 只是一个 JSON 5 文件,如果将使用 material 配置的密钥一起提交,会存在密码泄漏的风险,推荐使用 动态修改编译配置 > 能力说明,示例: 动态修改编译配置 > 实践说明
  3. 证书相关文件:.cer.p7b.p12 等文件,强烈建议不要提交到 git 仓库,正确做法:
    1. 如果是开发环境,将 .cer.p7b.p12 等文件放在指定位置即可,如果放在工作区,需要使用 .gitignore 忽略 *.csr*.p12*.cer*.p7b
    2. 如果是在流水线 CI/CD 中,需要将证书转为 Base64 字符串(命令:base64 -i offline-data.keystore),将结果设置为流水线 CI/CD 环境变量。运行流水线时,使用 Base64 环境变量转为证书文件(命令:echo $KEYSTORE_BASE64 | base64 -d > offline-data_restored.keystore),流水线 Docker 镜像:HarmonyOS Command Line Tools Docker 镜像
  4. 由于 发布证书签名的应用不能启动调试运行
    1. build-profile.json5 中配置 调试证书所有证书、material 文件放在同一个文件夹中
    2. hvigorfile.ts 中配置 发布证书所有证书、material 文件放在同一个文件夹中),基于环境变量 process.env.CREATED_BY === 'deveco' 判断是否是基于 DevEco Studio 运行

在 DevEco Studio 中运行

GitLab Runner 流水线 CI/CD 示例