请问如何配置、读取应用打包配置/环境变量呢?(HarmonyOS 鸿蒙Next)
请问如何配置、读取应用打包配置/环境变量呢?(HarmonyOS 鸿蒙Next)
【设备信息】Mate60pro
【API版本】Api14
【DevEco Studio版本】5.0.2 Release
我现在的需求是需要根据打包的环境配置,比如dev、qa、prod,来读取不同的sdk key和请求域名等,最好是可以根据我的打包参数,就打包不同的配置到最终的包里面,这样更安全,想问下这样的配置我应该写在哪里,以及如何读取呢?如果把配置文件放到resources下面的话,多份配置文件都会一起打包进hap吧?
可以这样
-
创建不同环境的资源目录
-
在模块级的build-profile中,指定target使用的资源

更多关于请问如何配置、读取应用打包配置/环境变量呢?(HarmonyOS 鸿蒙Next)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
我是通过hvigorfile.ts来接收使用命令行打包时传入的参数,然后根据传入的参数,写入 build-profile.json5配置中,可以控制生成的 BuildProfile.ets 中的参数,BuildProfile和Android中BuildConfig对象差不多。
比如我在项目根目录下的build-profile.json5文件中定义了online字段

命令行打包时传入:
hvigorw clean assembleHap -p buildMode=release --config properties.online=true
在项目根目录的hvigorfile.ts文件中接收

这样在构建后,就可以看到BuildProfile类中有传入的自定义字段了
具体可以看这个 https://juejin.cn/post/7460860273849712680 和 https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-hvigor-get-build-profile-para-guide-V5
在HarmonyOS鸿蒙Next中,配置和读取应用打包配置/环境变量可以通过config.json文件实现。config.json是应用的核心配置文件,定义了应用的基本信息、权限、组件等。
-
配置环境变量: 在
config.json文件的"module"节点下,可以通过"env"字段配置环境变量。例如:"module": { "env": { "API_URL": "https://api.example.com", "DEBUG_MODE": "true" } } -
读取环境变量: 在应用代码中,可以通过
AbilityContext的getEnvironment方法读取配置的环境变量。例如:const context = ...; // 获取AbilityContext const env = context.getEnvironment(); const apiUrl = env.getProperty("API_URL"); const debugMode = env.getProperty("DEBUG_MODE"); -
动态更新环境变量: 如果需要动态更新环境变量,可以通过
AbilityContext的setEnvironment方法实现。例如:const context = ...; // 获取AbilityContext const env = context.getEnvironment(); env.setProperty("API_URL", "https://new.api.example.com");
以上方法适用于HarmonyOS鸿蒙Next,配置和读取环境变量均在config.json和应用代码中完成。

