项目构建流程

Catalogue   
  • hvigorconfig.ts:根目录下存在一份,可用于hvigor生命周期刚开始时操作某些数据
  • hvigorfile.ts:每个node都有一份,构建的必须文件,在此文件中可以注册插件、任务以及生命周期hook等操作
  • hvigor-ohos-plugin:默认的构建插件,为任务(Task)的完成提供业务逻辑支持,比如hvigor提供Hap、Har和Hsp打包服务等任务

hvigor生命周期

  • 初始化:根据命令参数和hvigor-config.json5中的配置,构造出hvigor对象和hvigorConfig对象;执行根目录下的hvigorconfig.ts
  • 配置:执行每个node中的hvigorfile.ts文件,为每个node添加plugin,执行apply方法;构造出DAG图
  • 执行:执行选定的任务

官方指导:

1
2
3
4
5
6
7
8
9

# 命令行参数-p buildMode指定编译模式,比如指定"release"编译模式,构建entry模块的HAP包
hvigorw --mode module -p product=default -p module=entry@default -p buildMode=release -p debuggable=false assembleHap


# 查看所有任务
hvigorw tasks

hvigorw taskTree

构建多目标产物

hap、har、app都可以定制多目标构建产物。

entry模块根据需求配置不同的target,项目根build-profile中也添加对应的target,配置bundleName、签名信息等,然后在modules中进行关联。

使用自定义参数

entry模块的build-profile文件的targets中使用buildProfileFields定义参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
"targets": [
{
"name": "default",
"config": {
"buildOption": {
"arkOptions": {
"buildProfileFields": {
"key1": "value1",
"key2": "value2"
}
}
}
}
},

{}
]
}

发布

企业内部应用发布

参考文档

发布流程

  1. 申请组织内部发布证书
  2. 申请组织内部发布Profile
  3. 配置签名信息
  4. 编译打包应用
  5. 上传应用至服务器
  • 创建manifest.json5文件
    • 计算sha256:openssl sha256 aa.hap
    • versionCode、versionName等要跟hap包保持一致
  • 创建html文件作为入口
  1. 生成应用描述文件并上传至服务器
  2. 构造DeepLink拉起应用下载安装