HarmonyOS 鸿蒙Next 同一份代码不同环境配置打包实现方法(如测试、UAT、生产环境参数、域名、bundleId配置)

发布于 1周前 作者 yibo5220 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 同一份代码不同环境配置打包实现方法(如测试、UAT、生产环境参数、域名、bundleId配置)

同一份代码,会有不同的环境(比如测试环境、uat环境、生产环境)会有不同的参数、域名、bundleId(包名),现在不知道如何配置才能实现一键切换,打出不同环境下的debug和release包? 打包很麻烦,严重影响效率

2 回复

不同环境的环境变量,可以定义到工程级和模块级的自定义参数中,构建时生成BuildProfile.ets的utl类文件,代码中可直接引用。详见能力说明及实践说明:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/ide-hvigor-get-build-profile-para-sample-V13#section187701744194317

在工程级下的build-profile.json5中的"signingConfigs"属性下配置这些签名文件路径,可配置多套签名配置,根据"name"属性在"products"中进行绑定

文档地址:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/ide-hvigor-multi-module-V13

"signingConfigs": [

      {

        “name”: “default”,  //可自定义

        “type”: “HarmonyOS”,

        “material”: {

          “certpath”: “xxx”,

          “storePassword”: “xxx”,

          “keyAlias”: “debugKey”,

          “keyPassword”: “xxx”,

          “profile”: “xxx”,

          “signAlg”: “SHA256withECDSA”,

          “storeFile”: “xxx”

        }

      },

      {

        “name”: “default1”,

        “type”: “HarmonyOS”,

        “material”: {

          “certpath”: “xxx”,

          “storePassword”: “xxx”,

          “keyAlias”: “debugKey”,

          “keyPassword”: “xxx”,

          “profile”: “xxx”,

          “signAlg”: “SHA256withECDSA”,

          “storeFile”: “xxx”

        }

      }

    ],

    “products”: [

      {

        “name”: “default”,  //可自定义

        “signingConfig”: “default”,

        “compatibleSdkVersion”: “5.0.0(12)”,

        “runtimeOS”: “HarmonyOS”,

      },

      {

        “name”: “default2”,

        “signingConfig”: “default1”,

        “compatibleSdkVersion”: “5.0.0(12)”,

        “runtimeOS”: “HarmonyOS”,

      }

    ],

配置完后单击右上角的product图标,指定需要打包的Product

包名bundleName需要手动替换

更多关于HarmonyOS 鸿蒙Next 同一份代码不同环境配置打包实现方法(如测试、UAT、生产环境参数、域名、bundleId配置)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next系统中,同一份代码针对不同环境(如测试、UAT、生产环境)进行打包时,可以通过配置文件管理不同环境的参数。具体实现方法如下:

  1. 创建配置文件:在项目根目录下创建多个配置文件,例如config_test.jsonconfig_uat.jsonconfig_prod.json,分别存储测试、UAT、生产环境的参数(如域名、bundleId等)。

  2. 读取配置文件:在代码中编写一个配置管理器,根据当前编译环境(通过编译指令或环境变量确定)选择对应的配置文件进行读取。

  3. 编译指令区分环境:在项目的编译配置中,为不同环境设置不同的编译指令或环境变量。例如,使用宏定义区分环境:#define ENV_TEST#define ENV_UAT#define ENV_PROD

  4. 打包脚本:编写打包脚本,根据传入的环境参数选择对应的编译指令和配置文件进行打包。

  5. 执行打包:在执行打包命令时,传入目标环境的参数,脚本会根据参数选择相应的配置和编译指令进行打包。

通过以上步骤,可以实现同一份代码在不同环境下的打包,且各环境配置相互独立。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。

回到顶部