【HarmonyOS Next之旅】DevEco Studio使用指南(四十一) -> 获取自定义编译参数
目录
1 -> HAP/HSP运行时获取编译构建参数
1.1 -> 生成BuildProfile类文件
1.2 -> 在代码中获取构建参数
1.3 -> 默认参数
1.4 -> 自定义参数
2 -> HAR运行时获取编译构建参数
2.1 -> 生成BuildProfile类文件
2.2 -> 在代码中获取构建参数
2.3 -> 默认参数
2.4 -> 自定义参数
3 -> 工程级配置自定义构建参数
1 -> HAP/HSP运行时获取编译构建参数
1.1 -> 生成BuildProfile类文件
当前有以下几种方式可以生成BuildProfile类文件:
- 选中需要编译的模块,在菜单栏选择“Build > Generate Build Profile ${moduleName}”。
- 在菜单栏选择“Build > Build Hap(s)/APP(s) > Build Hap(s)”或“Build > Build Hap(s)/APP(s) > Build APP(s)”。
- 在Terminal中执行如下命令:
hvigorw GenerateBuildProfile
执行完上述操作后,将在“${moduleName} / build / ${productName} / generated / profile / ${targetName} ”目录下生成BuildProfile.ets文件。示例如下所示:
1.2 -> 在代码中获取构建参数
生成BuildProfile类文件后,在代码中可以通过如下方式引入该文件,其中packageName是模块级oh-package.json5文件中name字段对应的值。
import BuildProfile from '${packageName}/BuildProfile';
说明
在HSP中使用import BuildProfile from 'BuildProfile'在跨包集成HSP的时候可能会产生编译错误,推荐使用import BuildProfile from '${packageName}/BuildProfile'。
通过如下方式获取到构建参数:
@State message: string = BuildProfile.BUNDLE_NAME;
1.3 -> 默认参数
生成BuildProfile类文件时,Hvigor会根据当前工程构建的配置信息生成一部分默认参数,开发者可以在代码中直接使用。
参数名 | 类型 | 说明 |
BUNDLE_NAME | string | 应用的Bundle名称。 |
BUNDLE_TYPE | string | 应用的Bundle类型。 |
VERSION_CODE | number | 应用的版本号。 |
VERSION_NAME | string | 应用版本号的文字描述。 |
TARGET_NAME | string | Target名称。 |
PRODUCT_NAME | string | Product名称。 |
BUILD_MODE_NAME | string | 编译模式。 |
DEBUG | boolean | 应用是否可调试。 |
1.4 -> 自定义参数
可以在模块级的build-profile.json5文件中增加自定义参数,在生成BuildProfile类文件后,在代码中使用自定义参数。
自定义参数可以在buildOption、buildOptionSet、targets节点下的arkOptions子节点中通过增加buildProfileFields字段实现,自定义参数通过key-value键值对的方式配置,其中value取值仅支持number、string、boolean类型。
配置示例如下所示:
{"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"}}}}},{"name": "default1","config": {"buildOption": {"arkOptions": {"buildProfileFields": {"targetData": "TargetData1","data": "DataTargetDefault1"}}}}},{"name": "ohosTest",}]
}
2 -> HAR运行时获取编译构建参数
2.1 -> 生成BuildProfile类文件
当前有以下几种方式可以生成BuildProfile类文件:
- 选中需要编译的模块,在菜单栏选择“Build > Generate Build Profile ${moduleName}”。
- 选中需要编译的模块,在菜单栏选择“Build > Make Module ${moduleName}”。
- 在Terminal中执行如下命令:
hvigorw GenerateBuildProfile
执行完上述操作后,将在模块根目录下生成BuildProfile.ets文件(该文件可放置在.gitignore文件中进行忽略)。示例如下所示:
2.2 -> 在代码中获取构建参数
生成BuildProfile类文件后,在代码中可以通过相对路径引入该文件,如在HAR模块的Index.ets文件中使用该文件:
import BuildProfile from './BuildProfile';
通过如下方式获取到构建参数:
const HAR_VERSION: string = BuildProfile.HAR_VERSION;
2.3 -> 默认参数
生成BuildProfile类文件时,Hvigor会根据当前工程构建的配置信息生成一部分默认参数,开发者可以在代码中直接使用。
参数名 | 类型 | 说明 |
HAR_VERSION | string | HAR版本号。 |
BUILD_MODE_NAME | string | 编译模式。 |
DEBUG | boolean | 应用是否可调试。 |
TARGET_NAME | string | 目标名称。 |
2.4 -> 自定义参数
可以在模块级的build-profile.json5文件中增加自定义参数,在生成BuildProfile类文件后,在代码中使用自定义参数。
自定义参数可以在buildOption、buildOptionSet节点下的arkOptions子节点中通过增加buildProfileFields字段实现,自定义参数通过key-value键值对的方式配置,其中value取值仅支持number、string、boolean类型。
配置示例如下所示:
{"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",}]
}
3 -> 工程级配置自定义构建参数
可以在工程级的build-profile.json5文件中增加自定义参数,该自定义参数会生成到所有模块的BuildProfile类文件,在代码中使用自定义参数。
自定义参数可以在工程级products、buildModeSet中的buildOption节点下的arkOptions子节点中通过增加buildProfileFields字段实现,自定义参数通过key-value键值对的方式配置,其中value取值仅支持number、string、boolean类型。
配置示例如下所示:
{"app": {"signingConfigs": [],"products": [{"name": "default","signingConfig": "default","compatibleSdkVersion": "5.0.2(14)","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"]}]}]
}
感谢各位大佬支持!!!
互三啦!!!