开发中Hvigor会生成BuildProfile类过程中可以通过该类在运行时获取编译构建参数。一、使用说明1.1 buildProfileFields优先级模块级target 模块级buildOptionSet 模块级buildOption 工程级product 工程级buildModeSet1.2 BuildProfile类文件生成方式方式操作方式一选中模块 → Build → Generate Build Profile ${moduleName}方式二Build → Build Hap(s)/APP(s) → Build Hap(s) 或 Build APP(s)方式三命令行执行hvigorw GenerateBuildProfile二、HAP/HSP运行时获取构建参数2.1 生成位置在${moduleName}/build/${productName}/generated/profile/${targetName}目录下生成BuildProfile.ets文件。2.2 在代码中获取// packageName是模块级oh-package.json5中name字段的值 import BuildProfile from ${packageName}/BuildProfile; // 使用默认参数 State message: string BuildProfile.BUNDLE_NAME;说明在HSP中使用import BuildProfile from BuildProfile在跨包集成时可能产生编译错误推荐使用import BuildProfile from ${packageName}/BuildProfile。2.3 默认参数参数名类型说明BUNDLE_NAMEstring应用的Bundle名称BUNDLE_TYPEstring应用的Bundle类型VERSION_CODEnumber应用的版本号VERSION_NAMEstring应用版本号的文字描述TARGET_NAMEstringTarget名称PRODUCT_NAMEstringProduct名称BUILD_MODE_NAMEstring编译模式DEBUGboolean应用是否可调试2.4 自定义参数在模块级build-profile.json5中配置buildProfileFields{ apiType: stageMode, buildOption: { arkOptions: { buildProfileFields: { data: Data } } }, buildOptionSet: [ { name: release, arkOptions: { buildProfileFields: { buildOptionSetData: BuildOptionSetDataRelease, data: DataRelease } } }, { name: debug, arkOptions: { buildProfileFields: { buildOptionSetData: BuildOptionSetDataDebug, data: DataDebug } } } ], targets: [ { name: default, config: { buildOption: { arkOptions: { buildProfileFields: { targetData: TargetData, data: DataTargetDefault } } } } } ] }三、HAR运行时获取编译构建参数3.1 生成位置在模块根目录下生成BuildProfile.ets文件该文件可放置在.gitignore中忽略。3.2 在代码中获取// 通过相对路径引入 import BuildProfile from ./BuildProfile; // 使用默认参数 const HAR_VERSION: string BuildProfile.HAR_VERSION;3.3 默认参数参数名类型说明HAR_VERSIONstringHAR版本号BUILD_MODE_NAMEstring编译模式DEBUGboolean应用是否可调试TARGET_NAMEstring目标名称3.4 自定义参数在模块级build-profile.json5中配置buildProfileFields{ apiType: stageMode, buildOption: { arkOptions: { buildProfileFields: { data: Data } } }, buildOptionSet: [ { name: release, arkOptions: { buildProfileFields: { buildOptionSetData: BuildOptionSetDataRelease, data: DataRelease } } }, { name: debug, arkOptions: { buildProfileFields: { buildOptionSetData: BuildOptionSetDataDebug, data: DataDebug } } } ], targets: [ { name: default } ] }四、工程级配置自定义构建参数工程级自定义参数会生成到所有模块的BuildProfile类文件中。4.1 配置位置在工程级build-profile.json5的products或buildModeSet的buildOption节点下的arkOptions子节点中配置。4.2 示例{ app: { products: [ { name: default, signingConfig: default, compatibleSdkVersion: 26.0.0, runtimeOS: HarmonyOS, buildOption: { arkOptions: { buildProfileFields: { productValue: defaultValue } } } } ], buildModeSet: [ { name: debug, buildOption: { arkOptions: { buildProfileFields: { productBuildModeValue: debugValue } } } }, { name: release } ] }, modules: [ { name: entry, srcPath: ./entry, targets: [ { name: default, applyToProducts: [default] } ] } ] }五、优先级配置位置data值优先级工程级buildModeSet最低5工程级product次低4模块级buildOption中3模块级buildOptionSet较高2模块级target最高1自定义参数配置位置层级配置位置工程级products/buildOption/arkOptions/buildProfileFields工程级buildModeSet/buildOption/arkOptions/buildProfileFields模块级buildOption/arkOptions/buildProfileFields模块级buildOptionSet/arkOptions/buildProfileFields模块级targets/config/buildOption/arkOptions/buildProfileFields