请问如何配置、读取应用打包配置/环境变量呢?(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
和应用代码中完成。