动态配置构建
证书与密钥说明
- 由于配置文件
build-profile.json5 中的 signingConfigs 密码基于 material 配置,代码提交时,需要将 material 文件夹也提交。material 目录与证书同级
- 由于
build-profile.json5 只是一个 JSON 5 文件,如果将使用 material 配置的密钥一起提交,会存在密码泄漏的风险,推荐使用 动态修改编译配置 > 能力说明,示例: 动态修改编译配置 > 实践说明
- 证书相关文件:
.cer、.p7b、.p12 等文件,强烈建议不要提交到 git 仓库,正确做法:
- 如果是开发环境,将
.cer、.p7b、.p12 等文件放在指定位置即可,如果放在工作区,需要使用 .gitignore 忽略 *.csr、*.p12、*.cer、*.p7b 等
- 如果是在流水线 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 镜像
- 由于
发布证书签名的应用不能启动调试或运行:
- 在
build-profile.json5 中配置 调试证书(所有证书、material 文件放在同一个文件夹中)
- 在
hvigorfile.ts 中配置 发布证书(所有证书、material 文件放在同一个文件夹中),基于环境变量 process.env.CREATED_BY === 'deveco' 判断是否是基于 DevEco Studio 运行
在 DevEco Studio 中运行
GitLab Runner 流水线 CI/CD 示例