请问如何配置、读取应用打包配置/环境变量呢?(HarmonyOS 鸿蒙Next)

请问如何配置、读取应用打包配置/环境变量呢?(HarmonyOS 鸿蒙Next) 【设备信息】Mate60pro
【API版本】Api14
【DevEco Studio版本】5.0.2 Release

我现在的需求是需要根据打包的环境配置,比如dev、qa、prod,来读取不同的sdk key和请求域名等,最好是可以根据我的打包参数,就打包不同的配置到最终的包里面,这样更安全,想问下这样的配置我应该写在哪里,以及如何读取呢?如果把配置文件放到resources下面的话,多份配置文件都会一起打包进hap吧?

3 回复

可以这样

  1. 创建不同环境的资源目录

  2. 在模块级的build-profile中,指定target使用的资源

cke_393.png

更多关于请问如何配置、读取应用打包配置/环境变量呢?(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/7460860273849712680https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-hvigor-get-build-profile-para-guide-V5

在HarmonyOS鸿蒙Next中,配置和读取应用打包配置/环境变量可以通过config.json文件实现。config.json是应用的核心配置文件,定义了应用的基本信息、权限、组件等。

  1. 配置环境变量: 在config.json文件的"module"节点下,可以通过"env"字段配置环境变量。例如:

    "module": {
        "env": {
            "API_URL": "https://api.example.com",
            "DEBUG_MODE": "true"
        }
    }
    
  2. 读取环境变量: 在应用代码中,可以通过AbilityContextgetEnvironment方法读取配置的环境变量。例如:

    const context = ...; // 获取AbilityContext
    const env = context.getEnvironment();
    const apiUrl = env.getProperty("API_URL");
    const debugMode = env.getProperty("DEBUG_MODE");
    
  3. 动态更新环境变量: 如果需要动态更新环境变量,可以通过AbilityContextsetEnvironment方法实现。例如:

    const context = ...; // 获取AbilityContext
    const env = context.getEnvironment();
    env.setProperty("API_URL", "https://new.api.example.com");
    

以上方法适用于HarmonyOS鸿蒙Next,配置和读取环境变量均在config.json和应用代码中完成。

回到顶部