HarmonyOS鸿蒙Next日常开发中测试版本和生产版本如何配置?

HarmonyOS鸿蒙Next日常开发中测试版本和生产版本如何配置? 鸿蒙原生应用日常开发中,最常遇到的“内部测试”和“生产发布”版本的发布,如何配置?

3 回复

配置多目标产物

鸿蒙原生应用日常开发中,最常遇到的是“内部测试”和“生产发布”版本的发布,本是对对官方文档配置多目标产物的精简总结。

版本 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)
  1. 应用资源:在工程级配置文件中定义,通过 app.products[i].resource.directories 指定。
  2. 证书和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.envProfilerelease.envProfile)。每个文件可定义该环境特有的配置项,例如:

{
  "services": {
    "myService": {
      "baseUrl": "https://api-test.example.com" // 测试环境地址
    }
  },
  "features": {
    "enableDebugMenu": true // 测试环境开启调试菜单
  }
}

在代码中通过envProfile API(如envProfile.get('services.myService.baseUrl'))动态获取对应环境的配置。在构建时,通过构建脚本或IDE构建方案选择注入特定的.envProfile文件。

2. 利用模块化与条件编译 通过创建不同的模块(如debugrelease)或使用// #if DEBUG形式的条件编译,在编译阶段隔离测试专用的代码(如日志工具、Mock数据)。生产构建时,这些代码不会被打包。

3. 管理签名与证书 测试版本通常使用自动生成的调试证书,而生产版本必须使用在AGC(AppGallery Connect)中申请的正式发布证书。在Hvigor构建脚本中,需配置不同的签名配置,指向对应的证书文件。

4. 构建配置与产品定制 在项目的build-profile.json5文件中,可以定义不同的“产品”(如testprod),每个产品可以关联不同的envProfile、开启不同的编译选项、并指定对应的签名方案。通过命令行或IDE界面选择构建产品即可输出对应版本。

关键实践建议

  • 环境隔离:确保测试环境的API、数据库等与生产环境完全隔离。
  • 版本标识:在测试版本的UI上(如设置页)明确标注版本类型(如“内部测试版”),并可通过特定操作(如连续点击版本号)开启调试面板。
  • 自动化:将构建测试包与生产包的流程脚本化,减少手动配置错误。

通过上述配置,开发者可以清晰、安全地管理应用在不同生命周期阶段的行为与资源。

回到顶部