鸿蒙编译构建-多目标产物

前置概念介绍

1,配置文件介绍:

  • build-profile.json5:modules字段,用于记录工程下的模块信息,主要包含模块名称、模块的源码路径以及模块的 target 信息
  • oh-package.json5:应用的三方包依赖配置文件
  • local.properties: 应用本地环境配置文件
  • obfuscation-rules.txt: 应用模块的混淆规则配置文件
  • consumer-rules.txt: 库模块默认导出的混淆规则文件,会打包到HAR包中;仅支持HAR模块

2,target 和 product:

  • Entry/Feature,构建产物是HAP。一个模块可以定义多个target,每个target对应一个定制的HAP,通过配置可以实现一个模块构建出不同的HAP
  • 鸿蒙工程的构建产物是APP包。一个工程可以定义多个product,每个product对应一个定制化应用包,通过配置可以实现一个工程构建出多个不同的应用包。

工程级build-profile.json5

{
  "app": {
    //必须要有default  ,否则编译时会出现错误。
    "products": [
    ...
      {
        "name": "product_A",
        "signingConfig": "default_test",
        "compatibleSdkVersion": "5.0.1(13)",
        "targetSdkVersion": "5.0.1(13)",
        "runtimeOS": "HarmonyOS",
        "buildOption": {},
        "output": {"artifactName" :  'AppName'},//
        "bundleName": "com.XXX.XXX",//标识应用的Bundle名称,用于标识应用的唯一性
        "vendor": "$string:app_vendor",
        "versionCode": 100000,//标识应用的版本号
        "versionName": "1.0.0",//标识向用户展示的应用版本号。
        "icon": "$media:icon_0000",//图标
        "label": "$string:app_name_0000"//应用名称
      },
    ...
    ]
  }
...
"modules": [
    //--------------公共model————start------------------
    {
      "name": "support",
      "srcPath": "./support",
      "targets": [
        {
          "name": "default",
          "applyToProducts": [    //将定义的target打包到哪一个product中
            "product_A", //将default target打包到product_A APP中 
            "product_B",
          ]
        }
      ]
    }
  ]
}

构建目标产物

单击右上角的

构建

图标,指定需要打包的ProductTarget,然后单击Apply保存。例如选择"ProductA"中,entry模块对应的"free" Target。

  • Product:选择需要构建的 APP 包。
  • Build Mode:选择编译模式
  • Product Info:该APP包的BundleName和SigningConfig信息。
  • Target Select:选择各个模块的Target,该Target需要包含在定义的Product中才能选择,如果未包含则显示"No Target to apply"
    构建模块
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容