# 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`,提交以固定依赖版本。