应用正式对外发布版本前,需要对应用进行代码调试。调试和正式发布版本,两者编译行为可能不同。此时,可以利用buildMode能力,来定制两个版本的编译差异性。
假设其中构建产物均为default,但编译行为不同:release模式下使能混淆,debug模式下使能调试。
示例工程中包含一个模块entry,将entry模块交付到构建产物default中,模块定制两种不同的编译模式debug、release,将两种构建模式均绑定到构建产物default中。工程示例图如下(模块):

- {
- "app": {
- "signingConfigs": [],
- "products": [
- {
- "name": "default",
- "signingConfig": "default",
- "compatibleSdkVersion": "26.0.0",
- "runtimeOS": "HarmonyOS",
- "buildOption": {
- "strictMode": {
- "caseSensitiveCheck": true,
- "useNormalizedOHMUrl": true
- }
- }
- }
- ],
- "buildModeSet": [
- {
- "name": "debug"
- },
- {
- "name": "release"
- }
- ]
- },
- "modules": [
- {
- "name": "entry",
- "srcPath": "./entry",
- "targets": [
- {
- "name": "default",
- "applyToProducts": [
- "default"
- ]
- }
- ]
- }
- ]
- }
- {
- "apiType": "stageMode",
- "buildOption": {
- },
- "buildOptionSet": [
- {
- "name": "release",
- "arkOptions": {
- "obfuscation": {
- "ruleOptions": {
- "enable": true,
- "files": [
- "./obfuscation-rules.txt"
- ]
- }
- }
- }
- },
- {
- "name": "debug",
- "debuggable": true,
- "arkOptions": {
- "obfuscation": {
- "ruleOptions": {
- "enable": false
- }
- }
- }
- }
- ],
- "buildModeBinder": [
- {
- "buildModeName": "release",
- "mappings": [
- {
- "buildOptionName": "release",
- "targetName": "default"
- }
- ]
- },
- {
- "buildModeName": "debug",
- "mappings": [
- {
- "buildOptionName": "debug",
- "targetName": "default"
- }
- ]
- }
- ],
- "targets": [
- {
- "name": "default",
- },
- {
- "name": "ohosTest",
- }
- ]
- }
示例1:构建APP时,构建产物为default,指定构建模式为debug,可执行如下命令:
- hvigorw --mode project -p product=default -p buildMode=debug assembleApp
编译产物示例如下:

示例2:构建APP时,构建产物为default,指定构建模式为release,可执行如下命令:
- hvigorw --mode project -p product=default -p buildMode=release assembleApp
编译产物示例如下:

在DevEco Studio界面进行可视化配置,Product选择default,Build Mode选择debug后,点击Build -> Build Hap(s)/APP(s) -> Build APP(s) ,打包出产物为default、构建模式为debug的APP包。

合作咨询
我们的专家服务团队将竭诚为您提供专业的合作咨询服务
解决方案
精准高效的一站式服务支持,助力开发者商业成功