news 2026/7/21 14:28:50

鸿蒙 构建模式定制(二)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
鸿蒙 构建模式定制(二)

开发中,调试和正式发布版本的编译行为通常不同(如debug开启调试信息、release开启混淆)。通过利用buildMode能力定制两种版本的编译差异性。

一、说明

示例工程中包含一个模块entry,交付到构建产物default中,模块定制两种不同的编译模式:

构建模式编译行为
debug使能debug调试,不开启混淆
release使能混淆,对代码进行保护

二、工程级build-profile.json5配置

{ "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"] } ] } ] }

关键配置

配置项说明
products定义产品default
buildModeSet定义debug和release两种构建模式
modules.targetsentry模块绑定到default product

三、模块级build-profile.json5配置

{ "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" } ] }

关键配置

配置项说明
buildOptionSet定义release(开启混淆)和debug(debuggable:true,不混淆)
buildModeBinder将release模式绑定release option,debug模式绑定debug option

四、指定构建模式

4.1 命令行方式

构建debug模式

hvigorw --mode project -p product=default -p buildMode=debug assembleApp

构建release模式

hvigorw --mode project -p product=default -p buildMode=release assembleApp

4.2 DevEco Studio界面

  1. Build Mode下拉选择对应配置选项(debug/release)

  2. 点击Build → Build Hap(s)/APP(s) → Build APP(s)

五、编译产物

构建模式产物特征
debug包含调试信息,可进行调试,不开启混淆
release去掉调试信息,减小体积,开启混淆保护代码
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/21 14:28:49

深入解析TI C6000 DSP EMIFA寄存器:SDRAM、异步接口与NAND Flash配置实战

1. 项目概述与EMIFA核心价值在嵌入式系统开发中,处理器与外部存储器的“对话”效率,往往是决定整个系统性能的关键瓶颈。无论是需要高速缓存的网络处理器,还是需要大容量存储的工业控制器,外部存储器接口(EMIFA&#x…

作者头像 李华
网站建设 2026/7/21 14:27:44

终极指南:3种高效跨平台部署方案在PC上运行ChromeOS系统

终极指南:3种高效跨平台部署方案在PC上运行ChromeOS系统 【免费下载链接】brunch Boot ChromeOS on x86_64 PC - Supports Intel CPU/GPU from 8th gen or AMD Ryzen 项目地址: https://gitcode.com/gh_mirrors/bru/brunch Brunch框架是一个革命性的开源项目…

作者头像 李华
网站建设 2026/7/21 14:26:18

泰戈尔的诗歌23

商人妈妈,让我们想象,你待在家里,我到异邦去旅行。‌‌再想象,我的船已经装得满满的,在码头上等候启航了。‌‌现在,妈妈,好好想一想告诉我,回来的时候我要带些什么给你。‌‌妈妈&a…

作者头像 李华
网站建设 2026/7/21 14:25:50

一小时搭建SpringBoot+Vue3健身管理系统:集成DeepSeek AI的完整实战

你肯定遇到过这种情况:期末大作业、课程设计、或者某个需要快速验证想法的项目,时间紧、任务重,要求却一点不低:要前后端分离,要有数据库增删改查,最好还能有点“技术亮点”。你打开搜索引擎,输…

作者头像 李华
网站建设 2026/7/21 14:25:49

CadQuery 架构深度解析:基于 Python 的参数化 CAD 建模实战指南

CadQuery 架构深度解析:基于 Python 的参数化 CAD 建模实战指南 【免费下载链接】cadquery A python parametric CAD scripting framework based on OCCT 项目地址: https://gitcode.com/gh_mirrors/ca/cadquery CadQuery 是一个基于 Python 的参数化 CAD 脚…

作者头像 李华
网站建设 2026/7/21 14:25:39

ARM Bootloader与重定位机制详解:从启动流程到实战编写

在嵌入式开发中,尤其是基于 ARM 架构的 MCU 或应用处理器,你是否曾对芯片上电后第一行代码的执行位置感到困惑?是否在调试 Bootloader 时,被“重定位”、“向量表”、“加载地址与运行地址”这些概念搞得晕头转向?当你…

作者头像 李华