Files
harmony-client/docs/build-deploy.md

58 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Build & Deploy(构建与部署)
构建系统:hvigor(HarmonyOS 官方构建工具),配置见 `hvigor/`、`hvigorfile.ts`、`build-profile.json5`。
## 构建 / 运行 Build & Run
- **主路径**:DevEco Studio → Build / Run(GUI)。首次打开自动同步依赖。
- 命令行(`hvigorw` wrapper 由 DevEco 首次同步生成):
```bash
# 构建 debug HAP
hvigorw assembleHap --mode module -p product=default -p buildMode=debug
# 构建 release HAP
hvigorw assembleHap --mode module -p product=default -p buildMode=release
```
产物通常在 `entry/build/default/outputs/` 下(`default` 为 product 名)。
## 多模块构建 Multi-module Build
本工程为「单 HAP + 多 HAR」:`entry/`(HAP)+ `common/`(HAR)+ `uikit/`(HAR)。
- HAR(`common`/`uikit`)作为 `entry` 的依赖,构建 entry 时会**自动先编译**依赖的 HAR,正常开发只需构建 entry。
- 任务类型:HAP 用 `assembleHap`,HAR 用 `assembleHar`。
- 构建整个工程用 `--mode project`(按依赖顺序构建全部模块);构建单个模块用 `--mode module`。
- 模块注册:根 `build-profile.json5` 的 `modules`;模块间依赖:各自 `oh-package.json5` 的 `dependencies` 用 `file:../xxx` 声明。
**HAR 配置要点(易错)**:
- `module.json5` 的 `type` 必须是 `har`(**不是** `shared`——`shared` 对应 HSP,会要求 `hspTasks`)。
- `oh-package.json5` 的 `main: "Index.ets"` 指向**模块根目录**的 `Index.ets`(该文件 `export * from './src/main/ets/Index.ets'` 转发公共 API)。
- 权限(如 `ohos.permission.INTERNET`)只声明在 HAP 的 `module.json5` 的 `requestPermissions`;HAR 不声明权限。
## 签名 Signing
`build-profile.json5` 里 `signingConfigs` 目前为**空**,且 `products[].signingConfig` 引用了 `"default"` —— **签名尚未配置**。
要跑真机/模拟器需先配置签名:
- DevEco Studio → File → Project Structure → Signing Configs → 勾选自动签名(登录华为账号)。
- 或手动配置 `.p12` + `.cer` / `.p7b`。
> 该文件的签名部分属于 **Agent 禁止修改** 范围(见 `AGENTS.md`)。
## 产品与构建模式 Products & Build Modes
- `products`:当前只有一个 `default`(`targetSdkVersion 6.0.2(22)`,`runtimeOS: HarmonyOS`)。
- `buildModeSet`:`debug` / `release`。
## 部署 Deploy
1. 配置签名(见上)。
2. 连接真机(开启开发者模式 + USB 调试)或启动模拟器。
3. DevEco Studio 选择设备 → Run。
## 环境环境变量 / 本地配置
- `local.properties`:本机 SDK 路径等,**已 gitignore,勿提交,勿写密钥**。
- 依赖锁:`oh-package-lock.json5`,提交以固定依赖版本。