Harmony OS NEXT(5.0)配置多环境编译

通过配置多个targets和products实现多环境编译(如dev、test、uat、prod等)

1. 配置HAP的targets

打开文件entry/build-profile.json5,在targets中添加其他环境的配置:

// entry/build-profile.json5
{
    //...
    "targets": [
    {
      "name": "default",
      "source": {
        "sourceRoots": ["./src/default"]
      }
    },
    {
      "name": "dev",
      "source": {
        "sourceRoots": ["./src/dev"]
      }
    },
    {
      "name": "test",
      "source": {
        "sourceRoots": ["./src/test"]
      }
    },
    {
      "name": "uat",
      "source": {
        "sourceRoots": ["./src/uat"]
      }
    }
  ]
}

这里 default 为生成prod,然后在entry/src下依次创建上面sourceRoots中配置的文件夹,如./src/dev就创建entry/src/dev文件夹。

里面可以放自定义配置文件,如entry/src/dev/config.ets要求各个文件夹中的文件名称需要一致,且export出来的变量名需要一致

// entry/src/dev/config.ets
{
    export const BASE_URL = '/api'
}

在业务中使用:

import { BASE_URL } from 'entry/config'
console.log(BASE_URL)

2. 配置App中的products

在项目根目录下的build-profile.jsono5中配置productsmodules下的targets:

// /build-profile.json5
{
    // ...
    "products": [
      {
        "name": "default",
        "signingConfig": "default",
        "compatibleSdkVersion": "5.0.0(12)",
        "runtimeOS": "HarmonyOS",
        "bundleName": "com.bg7zag.app" // 构建出来的包名
      },
      {
        "name": "dev", // 构建的环境名称
        "signingConfig": "dev", // 签名在DevEco中签名,每个环境都生成一个签名,然后这里配置上对应的签名,对应的signingConfigs中的name
        "compatibleSdkVersion": "5.0.0(12)",
        "runtimeOS": "HarmonyOS",
        "bundleName": "com.bg7zag.app.dev",
        "label": "$string:app_name_dev", // 每个环境包的名称
        "icon": "$media:app_icon_dev" // 每个环境包的图标
      },
      {
        "name": "test",
        "signingConfig": "test",
        "compatibleSdkVersion": "5.0.0(12)",
        "runtimeOS": "HarmonyOS",
        "bundleName": "com.bg7zag.app.test",
        "label": "$string:app_name_test",
        "icon": "$media:app_icon_test"
      },
      {
        "name": "uat",
        "signingConfig": "uat",
        "compatibleSdkVersion": "5.0.0(12)",
        "runtimeOS": "HarmonyOS",
        "bundleName": "com.bg7zag.app.uat",
        "label": "$string:app_name_uat",
        "icon": "$media:app_icon_uat"
      }
    ],
    "modules": [
    {
      "name": "entry",
      "srcPath": "./entry",
      "targets": [
        {
          "name": "default",
          "applyToProducts": [
            "default",
          ]
        },
        {
          "name": "dev", // 上面的default为默认,当prod用,这里新增dev
          "applyToProducts": [
            "dev" // 在products中对应的name
          ]
        },
        {
          "name": "test",
          "applyToProducts": [
            "test"
          ]
        },
        {
          "name": "uat",
          "applyToProducts": [
            "uat"
          ]
        }
      ]
    }
  ],
}

这里需要签名完成后才不报错

3. 签名

点击文件->项目结构->project->Signing Config中点击 + ,新增一个签名

name建议输入跟products中的name一致,点击ok后等待生成签名证书,然后点击ok关闭。再返回去查看App的build-profile.json5

harmony OS Next 应用签名

4. 选择环境

根据下图选择编译模式

选择编译模式

选择编译模式

然后可以根据当前选择的模式进行debug开发或者构建编译了

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-customized-multi-targets-and-products-guides-0000001731595144-V5

上面文档如果没有权限,则在最新版文档的指南中搜索“能力说明”

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇