一、配置文件整体结构

app
├── signingConfigs
│   └── name / material / type
├── products
│   ├── name / signingConfig / bundleName / buildOption
│   ├── compatibleSdkVersion / targetSdkVersion / compileSdkVersion
│   ├── runtimeOS / arkTSVersion / bundleType / label / icon
│   ├── versionCode / versionName / buildVersion / vendor
│   └── resource / output
├── buildModeSet
│   └── name / buildOption
├── multiProjects
├── capabilities
│   ├── bundleName
│   └── config
│       ├── name / capability
│       └── subCapabilities
└── ...
modules
└── name / srcPath / targets
    └── name / applyToProducts

二、app字段

2.1 主要子字段

字段名称 类型 可选/必选 含义
signingConfigs 对象数组 可选 签名方案信息,可配置多个
products 对象数组 可选 产品品类,可配置多个(需存在name为"default"的product)
buildModeSet 对象数组 可选 构建模式集合,可配置多个
multiProjects 布尔值 可选 当前工程是否支持多工程构建,默认false
capabilities 对象数组 可选 应用开通的开放能力(6.0.0 Beta5+)

2.2 signingConfigs(签名配置)

字段 类型 含义
name 字符串 签名方案名称,仅支持数字和字母
type 字符串 签名类型:HarmonyOS / OpenHarmony
material 对象 签名材料(证书、密码等)

material字段

字段 含义
storePassword 密钥库密码(密文)
certpath 证书文件地址(.cer)
keyAlias 密钥别名
keyPassword 密钥密码(密文)
profile Profile文件地址(.p7b)
signAlg 签名算法(SHA256withECDSA)
storeFile 密钥库文件地址(.p12)

2.3 products(产品配置)

字段 类型 含义
name 字符串 产品名称(必须存在"default")
signingConfig 字符串 签名方案名称
bundleName 字符串 产品包名
compatibleSdkVersion 字符串/数值 兼容的最低SDK版本
targetSdkVersion 字符串/数值 目标SDK版本
compileSdkVersion 字符串/数值 编译使用的SDK版本
runtimeOS 字符串 运行环境:HarmonyOS / OpenHarmony
arkTSVersion 字符串 ArkTS语法检查工具版本:1.0 / 1.1
bundleType 字符串 包类型:app / atomicService / shared
label 字符串 应用名称
icon 字符串 应用图标
versionCode 整型 版本号
versionName 字符串 版本名称
buildVersion 字符串 构建版本号(6.1.0 Beta2+)
resource 对象 名称和图标对应的资源目录
output 对象 定制产品生成的应用包名称
buildOption 对象 产品编译构建配置

注意

  • 配置products中的label、icon、versionCode、versionName、resource字段后,将替换app.json5中的相关配置。

  • compatibleSdkVersionStage:当compatibleSdkVersion为API 12时,用于控制不同beta版本的兼容性。

2.4 buildModeSet(构建模式集合)

字段 含义
name 构建模式名称(默认debug、release、test)
buildOption 构建模式使用的具体配置信息

2.5 capabilities(开放能力)

字段 含义
bundleName 开放能力归属的包名
config 具体的开放能力配置(name、capability、subCapabilities)

三、modules字段

modules是一个对象数组,描述工程中包含的所有模块。

字段 类型 含义
name 字符串 模块名称,需与module.json5中的module.name保持一致
srcPath 字符串 模块源码路径(相对路径)
targets 对象数组 模块的target信息,用于定制多目标构建产物

targets

字段 含义
name target名称
applyToProducts target关联的product(HAR模块无需配置)

四、buildOption字段

buildOption可在buildModeSet、products和模块级build-profile.json5中配置。

4.1 packOptions(打包配置)

字段 类型 含义
buildAppSkipSignHap 布尔值 构建APP时是否跳过生成签名HAP,默认false
fastBuildApp 布尔值 是否不生成HAP/HSP直接生成APP,默认false
enableSourceCodeCheck 布尔值 是否检查产物中的源码文件,默认true
deduplicateHar 布尔值 是否去除HSP中重复的HAR(6.0.1 Beta1+)
appWithSignedPkg 布尔值 是否额外生成带签名HAP/HSP的app包(6.0.2 Beta1+)
enableIncrementalSoCompress 布尔值 是否开启so增量压缩(6.1.0 Beta1+)

4.2 resOptions(资源编译配置)

字段 含义
compression 图片资源纹理压缩配置
resCompileThreads 资源编译线程数(最小1,最大CPU核数)
copyCodeResource src/main/ets下非源码文件拷贝配置
ignoreResourcePattern 根据glob语法过滤资源文件
excludeHarRes 指定不参与资源编译的三方HAR包
includeAppScopeRes 编译HSP时是否打包AppScope资源,默认true
idDefinedFilePath HAR去重时固定资源id的json5文件路径

copyCodeResource

字段 含义
enable 是否打包非源码文件,默认true
includes 指定打包的资源文件
excludes 指定不打包的资源文件

注意:src/main/ets目录下非.ets/.ts/.js文件会被当作资源文件打包,不混淆不加密。

4.3 arkOptions(ArkTS编译配置)

字段 含义
buildProfileFields 自定义构建配置(key/value)
types 自定义类型(包名或d.ts路径)
tscConfig TS语法编译配置(targetESVersion、maxFlowDepth等)
autoLazyImport 是否自动添加lazy关键字,默认false
autoLazyFilter 自定义添加lazy关键字的模块
reExportCheckMode lazy import重新导出检查模式(noCheck/compatible/strict)
branchElimination 是否启用代码分支裁剪,默认false
skipOhModulesLint 是否跳过oh_modules的ArkTS规则检查
expandImportPath import路径展开配置

tscConfig

字段 默认值
targetESVersion ES2021
maxFlowDepth 2000
tsImportSoCheck false(26.0.0 Beta1+)

expandImportPath

字段 含义
enable 是否启用import路径展开,默认false
exclude 指定不展开import语句的依赖

4.4 strictMode(严格模式)

字段 含义
noExternalImportByPath 是否严格检查绝对/跨模块导入
useNormalizedOHMUrl 是否使用标准化OHMUrl格式
caseSensitiveCheck 是否严格校验大小写
duplicateDependencyCheck 是否校验HSP依赖相同的HAR
harLocalDependencyCheck 是否对HAR产物启用本地依赖校验
enableStrictCheckOHModule 是否严格校验远程HAR/HSP参数类型
disableSendableCheckRules 指定关闭校验的Sendable规则
strictCheckerOnly 是否仅执行严格语法检查(6.1.1 Release+)
apiCompatibilityCheck ArkTS API兼容性检测级别(warn/error)

注意:useNormalizedOHMUrl需与依赖的HAR/HSP保持一致,同时配置为true或false。

4.5 其他buildOption字段

字段 含义
debuggable 是否可调试模式
generateSharedTgz 编译HSP时是否生成tgz包
nativeCompiler Native编译器:Original / BiSheng
removePermissions 删除依赖包中的冗余权限
preloadSystemSo 是否收集系统so预加载(6.0.0 Beta3+)
Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐