HarmonyOS鸿蒙Next日常开发中测试版本和生产版本如何配置?
HarmonyOS鸿蒙Next日常开发中测试版本和生产版本如何配置? 鸿蒙原生应用日常开发中,最常遇到的“内部测试”和“生产发布”版本的发布,如何配置?
配置多目标产物
鸿蒙原生应用日常开发中,最常遇到的是“内部测试”和“生产发布”版本的发布,本是对对官方文档配置多目标产物的精简总结。
| 版本 | product | buildModeSet |
|---|---|---|
| 内部测试 | default | default |
| 生产发布 | release | release |
文件结构
配置多目标产物涉及的文件如下:
|-- build-profile.json5 # 工程级构建配置文件
|-- entry # 模块入口
| `-- build-profile.json5 # 模块级构建配置文件
|-- AppScope # 应用资源
| |-- default # 对应内部测试版本
| `-- release # 对应生产发布版本
`-- .ohos # 证书和Profile
|-- default # 对应内部测试版本
`-- release # 对应生产发布版本
对应关系
根据鸿蒙(HarmonyOS)构建系统的设计,DevEco Studio右上角 Select Product 中的选项与工程级/模块级构建配置文件的对应关系如下表所示:

| Select Product 选项 | 配置文件层级 | 对应配置文件字段 | 字段说明 |
|---|---|---|---|
| Product | 工程级 | app.products[i].name |
定义目标产品名称(如手机、平板等) |
| Build Mode | 工程级 | app.buildModeSet[i].name |
构建模式(debug/release等) |
| Module Name | 模块级 | name |
当前模块的名称标识 |
| Module Target | 模块级 | targets[i].name |
模块的编译目标(如HarmonyOS/OpenHarmony) |
- 应用资源:在工程级配置文件中定义,通过
app.products[i].resource.directories指定。 - 证书和Profile:在工程级配置文件中定义,通过
app.products[i].signingConfig指定。
配置示例
工程级build-profile.json5配置(片段)
{
"app": {
"products": [{
"name": "default",
"signingConfig": "default",
"resource": {
"directories": [
"./AppScope/default"
]
}
}, {
"name": "release",
"signingConfig": "release",
"resource": {
"directories": [
"./AppScope/release"
]
}
}],
"buildModeSet": [{
"name": "default"
}, {
"name": "release"
}]
}
}
模块级build-profile.json5配置(片段)
{
"name": "entry",
"targets": [{
"name": "default"
}, {
"name": "release"
}]
}
更多关于HarmonyOS鸿蒙Next日常开发中测试版本和生产版本如何配置?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS Next中,通过AppGallery Connect管理应用版本。测试版本使用调试证书和调试Profile文件进行签名,生产版本使用发布证书和发布Profile文件。在HUAWEI DevEco Studio的工程配置中,分别设置调试与发布构建类型,对应不同的签名配置。测试版本通常开启调试功能,生产版本则进行混淆和优化。
在HarmonyOS Next应用开发中,配置测试版本与生产版本主要通过以下核心机制实现,这能有效管理不同环境的API地址、功能开关和证书等。
1. 使用多工程配置(envProfile)
这是官方推荐的标准方式。在AppScope下的resources目录中,可以创建多个.envProfile文件(如debug.envProfile、release.envProfile)。每个文件可定义该环境特有的配置项,例如:
{
"services": {
"myService": {
"baseUrl": "https://api-test.example.com" // 测试环境地址
}
},
"features": {
"enableDebugMenu": true // 测试环境开启调试菜单
}
}
在代码中通过envProfile API(如envProfile.get('services.myService.baseUrl'))动态获取对应环境的配置。在构建时,通过构建脚本或IDE构建方案选择注入特定的.envProfile文件。
2. 利用模块化与条件编译
通过创建不同的模块(如debug、release)或使用// #if DEBUG形式的条件编译,在编译阶段隔离测试专用的代码(如日志工具、Mock数据)。生产构建时,这些代码不会被打包。
3. 管理签名与证书 测试版本通常使用自动生成的调试证书,而生产版本必须使用在AGC(AppGallery Connect)中申请的正式发布证书。在Hvigor构建脚本中,需配置不同的签名配置,指向对应的证书文件。
4. 构建配置与产品定制
在项目的build-profile.json5文件中,可以定义不同的“产品”(如test、prod),每个产品可以关联不同的envProfile、开启不同的编译选项、并指定对应的签名方案。通过命令行或IDE界面选择构建产品即可输出对应版本。
关键实践建议
- 环境隔离:确保测试环境的API、数据库等与生产环境完全隔离。
- 版本标识:在测试版本的UI上(如设置页)明确标注版本类型(如“内部测试版”),并可通过特定操作(如连续点击版本号)开启调试面板。
- 自动化:将构建测试包与生产包的流程脚本化,减少手动配置错误。
通过上述配置,开发者可以清晰、安全地管理应用在不同生命周期阶段的行为与资源。

