鸿蒙 构建系统:build-profile.json5文件
一、配置文件整体结构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的productbuildModeSet对象数组可选构建模式集合可配置多个multiProjects布尔值可选当前工程是否支持多工程构建默认falsecapabilities对象数组可选应用开通的开放能力6.0.0 Beta52.2 signingConfigs签名配置字段类型含义name字符串签名方案名称仅支持数字和字母type字符串签名类型HarmonyOS / OpenHarmonymaterial对象签名材料证书、密码等material字段字段含义storePassword密钥库密码密文certpath证书文件地址.cerkeyAlias密钥别名keyPassword密钥密码密文profileProfile文件地址.p7bsignAlg签名算法SHA256withECDSAstoreFile密钥库文件地址.p122.3 products产品配置字段类型含义name字符串产品名称必须存在defaultsigningConfig字符串签名方案名称bundleName字符串产品包名compatibleSdkVersion字符串/数值兼容的最低SDK版本targetSdkVersion字符串/数值目标SDK版本compileSdkVersion字符串/数值编译使用的SDK版本runtimeOS字符串运行环境HarmonyOS / OpenHarmonyarkTSVersion字符串ArkTS语法检查工具版本1.0 / 1.1bundleType字符串包类型app / atomicService / sharedlabel字符串应用名称icon字符串应用图标versionCode整型版本号versionName字符串版本名称buildVersion字符串构建版本号6.1.0 Beta2resource对象名称和图标对应的资源目录output对象定制产品生成的应用包名称buildOption对象产品编译构建配置注意配置products中的label、icon、versionCode、versionName、resource字段后将替换app.json5中的相关配置。compatibleSdkVersionStage当compatibleSdkVersion为API 12时用于控制不同beta版本的兼容性。2.4 buildModeSet构建模式集合字段含义name构建模式名称默认debug、release、testbuildOption构建模式使用的具体配置信息2.5 capabilities开放能力字段含义bundleName开放能力归属的包名config具体的开放能力配置name、capability、subCapabilities三、modules字段modules是一个对象数组描述工程中包含的所有模块。字段类型含义name字符串模块名称需与module.json5中的module.name保持一致srcPath字符串模块源码路径相对路径targets对象数组模块的target信息用于定制多目标构建产物targets字段含义nametarget名称applyToProductstarget关联的productHAR模块无需配置四、buildOption字段buildOption可在buildModeSet、products和模块级build-profile.json5中配置。4.1 packOptions打包配置字段类型含义buildAppSkipSignHap布尔值构建APP时是否跳过生成签名HAP默认falsefastBuildApp布尔值是否不生成HAP/HSP直接生成APP默认falseenableSourceCodeCheck布尔值是否检查产物中的源码文件默认truededuplicateHar布尔值是否去除HSP中重复的HAR6.0.1 Beta1appWithSignedPkg布尔值是否额外生成带签名HAP/HSP的app包6.0.2 Beta1enableIncrementalSoCompress布尔值是否开启so增量压缩6.1.0 Beta14.2 resOptions资源编译配置字段含义compression图片资源纹理压缩配置resCompileThreads资源编译线程数最小1最大CPU核数copyCodeResourcesrc/main/ets下非源码文件拷贝配置ignoreResourcePattern根据glob语法过滤资源文件excludeHarRes指定不参与资源编译的三方HAR包includeAppScopeRes编译HSP时是否打包AppScope资源默认trueidDefinedFilePathHAR去重时固定资源id的json5文件路径copyCodeResource字段含义enable是否打包非源码文件默认trueincludes指定打包的资源文件excludes指定不打包的资源文件注意src/main/ets目录下非.ets/.ts/.js文件会被当作资源文件打包不混淆不加密。4.3 arkOptionsArkTS编译配置字段含义buildProfileFields自定义构建配置key/valuetypes自定义类型包名或d.ts路径tscConfigTS语法编译配置targetESVersion、maxFlowDepth等autoLazyImport是否自动添加lazy关键字默认falseautoLazyFilter自定义添加lazy关键字的模块reExportCheckModelazy import重新导出检查模式noCheck/compatible/strictbranchElimination是否启用代码分支裁剪默认falseskipOhModulesLint是否跳过oh_modules的ArkTS规则检查expandImportPathimport路径展开配置tscConfig字段默认值targetESVersionES2021maxFlowDepth2000tsImportSoCheckfalse26.0.0 Beta1expandImportPath字段含义enable是否启用import路径展开默认falseexclude指定不展开import语句的依赖4.4 strictMode严格模式字段含义noExternalImportByPath是否严格检查绝对/跨模块导入useNormalizedOHMUrl是否使用标准化OHMUrl格式caseSensitiveCheck是否严格校验大小写duplicateDependencyCheck是否校验HSP依赖相同的HARharLocalDependencyCheck是否对HAR产物启用本地依赖校验enableStrictCheckOHModule是否严格校验远程HAR/HSP参数类型disableSendableCheckRules指定关闭校验的Sendable规则strictCheckerOnly是否仅执行严格语法检查6.1.1 ReleaseapiCompatibilityCheckArkTS API兼容性检测级别warn/error注意useNormalizedOHMUrl需与依赖的HAR/HSP保持一致同时配置为true或false。4.5 其他buildOption字段字段含义debuggable是否可调试模式generateSharedTgz编译HSP时是否生成tgz包nativeCompilerNative编译器Original / BiShengremovePermissions删除依赖包中的冗余权限preloadSystemSo是否收集系统so预加载6.0.0 Beta3