自定义参数BuildProfile的问题汇总

1. 自定义参数BuildProfile的问题汇总

HarmonyOS
2024-05-28 22:21:44
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
gy_boy

一.BuildProfile功能介绍:

在编译构建时,Hvigor会生成BuildProfile类,开发者可以通过该类在运行时获取编译构建参数,也可以在build-profile.json5中通过buildProfileFields增加自定义字段,从而在运行时获取自定义的参数。

约束条件

仅支持API 10及以上的Stage模型工程。

二.目前BuildProfile支持能力:

HAP/HSP运行时获取编译构建参数:

生成BuildProfile类文件

在代码中获取构建参数

默认参数

自定义参数

HAR运行时获取编译构建参数:

生成BuildProfile类文件

在代码中获取构建参数

默认参数

自定义参数

工程级配置自定义构建参数:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-hvigor-get-build-profile-para-guide-0000001759228286#section63421512324

三.BuildProfile高频问题:

问题1:BuildProfile 无法取值问题?

问题场景:

har 开发中,需要传递har 的版本号给其他端,方便出现问题时定义har 的版本,当前发现BuildProfile 可以定义这些信息,目前对于如何获取BuildProfile 中定义的值有问题?

回答:

生成BuildProfile类文件后,在代码中可以通过相对路径引入该文件,如在HAR模块的Index.ets文件中使用该文件:

import BuildProfile from './BuildProfile';

通过如下方式获取到构建参数:

const HAR_VERSION: string = BuildProfile.HAR_VERSION; export{ HAR_VERSION}

问题2:BuildProfile文件是否支持在Native侧直接读取?

问题场景:

想要在native侧直接读取BuildProfile文件,这样方便开发,目前伙伴只看到ets使用的说明,但是在 native侧也需要使用?

回答:

目前不支持在native直接读取,建议在ets侧获取,传递到native侧。

问题3:build-profile.json5中定义的默认字段以及自定义字段能否在hvigor编译时扩展插件中拿到

问题场景:

想要会在项目根目录的build-profile.json5中定义product以及环境信息,该信息运行时可以在BuildProfile中获取。但是编译时阶段能否在Hvigor阶段也能获取到。

伙伴需要在编译阶段拉取配置,需要按照包对应的环境去拉取。

回答:

自己去读取build-profile.json5属于typeScript能力,目前无法给出。当前build-profie.json5中更多配置信息动态获取修改能力正在补充中,后面会暴露出对应的api。

如果想要在写流水线自动脚本时获取不同product信息等可以通过hvigorfile.ts直接调用对应接口即可

获取当前构建的product信息:

getCurrentProduct: () => Product

在工程级hvigorfile.ts中读取build-profile.json5配置的自定义参数:

hvigor-config.json5中添加json5依赖:

'json5': "^2.2.3"

问题4:获取BuildProfile 构建参数在什么时候获取?

问题场景:

1.想编译时在hvigor中有没有办法取到构建参数?想获取到build-profile.json5中定义的默认参数以及自定义参数?

2.hvigor插件编译过程中怎么debug?

回答:

1.目前可以取到一个Context对象,可以获取到moduleName以及modulePath,没有原生方法,可以用读取json5文件的方式实现(问题三类似)

2.调试hvigorfile.ts目前在ide上是不支持的

问题5:自定义的编译参数,在buildprofile里已经生成了,但是代码里使用报错找不到

问题现象:

本地HSP模块对外提供的接口中使用了HAP未定义的自定义参数BuildProfileFileds,且HAP引用了HSP中的该接口,导致编译失败,提示“Property 'XX' does not exist on type 'typeof BuildProfile'”。

回答:

可采用以下两种方式解决该问题:

1.在HAP中配置与HSP相同的自定义参数BuildProfileFileds。

2.将与HSP相同的自定义参数BuildProfileFileds配置到工程级build-profile.json5中,该方法会使HSP中的自定义参数在全局生效。

分享
微博
QQ
微信
回复
2024-05-29 23:35:41
相关问题
如何自定义拼接设置UserAgent参数
1045浏览 • 3回复 待解决
自定义装饰器使用问题
272浏览 • 1回复 待解决
自定义配置参数设定有会吗?
914浏览 • 1回复 待解决
如何理解自定义弹窗中gridCount参数
896浏览 • 1回复 待解决
自定义弹窗使用相关问题
401浏览 • 1回复 待解决
自定义弹窗自定义转场动画
436浏览 • 1回复 待解决
Tabs组件自定义导航栏UI问题
491浏览 • 1回复 待解决
hvigor自定义扩展demo
364浏览 • 1回复 待解决
如何自定义模拟Tabs组件
396浏览 • 1回复 待解决
Code Linter自定义代码规范
504浏览 • 1回复 待解决
自定义组件嵌套子组件
7979浏览 • 3回复 待解决