@deveco-test/hmos-deveco-cli 0.3.0-TD.2-alpha1 → 0.3.0-TD.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,34 +2,35 @@
2
2
  <h1>DevEco CLI</h1>
3
3
  <p>一个面向 HarmonyOS 应用开发的统一命令行入口。</p>
4
4
  <p>
5
- <a href="https://www.npmjs.com/package/@deveco/deveco-cli"><img src="https://img.shields.io/npm/v/@deveco/deveco-cli.svg" alt="NPM Version" /></a>
6
- <a href="https://www.npmjs.com/package/@deveco/deveco-cli"><img src="https://img.shields.io/npm/dm/@deveco/deveco-cli.svg" alt="NPM Downloads" /></a>
5
+ <a href="https://www.npmjs.com/package/@deveco-test/hmos-deveco-cli"><img src="https://img.shields.io/npm/v/@deveco/deveco-cli.svg" alt="NPM Version" /></a>
6
+ <a href="https://www.npmjs.com/package/@deveco-test/hmos-deveco-cli"><img src="https://img.shields.io/npm/dm/@deveco-test/hmos-deveco-cli.svg" alt="NPM Downloads" /></a>
7
7
  <a href="https://nodejs.org/"><img src="https://img.shields.io/badge/Node.js-%3E%3D18-green.svg" alt="Node.js" /></a>
8
- <img src="https://img.shields.io/badge/platform-macOS%20%7C%20Windows%20%7C%20Linux-blue.svg" alt="Platform" />
9
- <a href="https://developer.huawei.com/consumer/cn/download/"><img src="https://img.shields.io/badge/DevEco%20Studio-%3E%3D6.0.0-orange.svg" alt="DevEco Studio" /></a>
10
- <img src="https://img.shields.io/badge/Command%20Line%20Tools-%3E%3D26.0.0-orange.svg" alt="Command Line Tools" />
8
+ <img src="https://img.shields.io/badge/platform-HarmonyOS-blue.svg" alt="Platform" />
9
+ </a>
11
10
  <a href="./LICENSE"><img src="https://img.shields.io/badge/license-MIT-green.svg" alt="License" /></a>
12
11
  </p>
13
12
  </div>
14
13
 
15
- `DevEco CLI` 将 `DevEco Studio` 工具链统一封装为一个 `CLI`,内置 `ohpm`、`hvigor`、`hdc`、`emulator`、`hilog`,同时集成 HarmonyOS 技能安装、项目脚手架、本地 HarmonyOS 文档检索和 `MCP` 服务。
16
-
17
- > 关于数据采集与隐私(遥测打点内容、存储加密、上报及关闭方式),请参阅 [PRIVACY.md](./PRIVACY.md)。
14
+ `DevEco CLI` 将 `DevEco Studio` 工具链统一封装为一个 `CLI`,内置 `ohpm`、`hvigor`、`hdc`、`hilog`,同时集成 HarmonyOS 技能安装、项目脚手架、本地 HarmonyOS 文档检索和 `MCP` 服务。
18
15
 
19
16
 
20
17
  ## 快速开始
21
18
 
22
19
  ### 前置要求
23
20
 
24
- - 操作系统为 `macOS` 、 `Windows` 或 `Linux`(需配置对应环境变量)
25
- - Node.js >= 18,推荐使用22及以上版本
26
- - [DevEco Studio](https://developer.huawei.com/consumer/cn/download/) >= 6.0.0 或 [Command Line Tools](https://developer.huawei.com/consumer/cn/download/) >= 26.0.0
27
- - **macOS**:必须安装在 `~/Applications` 或 `/Applications` 目录下。
21
+ - 操作系统为 `HarmonyOS`
22
+ - 安装 Command Line Tool 工具
23
+ - 配置环境变量:
24
+ ```bash
25
+ export COMMAND_LINE_TOOL_PATH=path/to/deveco_tools
26
+ export PATH=$PATH:path/to/deveco_tools/node/bin
27
+ ```
28
+
28
29
 
29
30
  ### 安装
30
31
 
31
32
  ```bash
32
- npm install -g @deveco/deveco-cli@latest
33
+ npm install -g @deveco-test/hmos-deveco-cli
33
34
  ```
34
35
 
35
36
  安装后可以通过以下命令更新到最新版本:
@@ -56,41 +57,6 @@ devecocli docs read harmonyos-guides/application-models/arkts-page-start-overvie
56
57
 
57
58
  更多命令和参数可通过 `devecocli --help` 或各子命令的 `--help` 查看。
58
59
 
59
- ## 环境变量
60
-
61
- `devecocli` 当需要使用非默认安装路径、多版本并存时固定选型,Command Line Tools或在Linux下运行时,可通过以下环境变量显式指定工具链根:
62
-
63
- | 名称 | 说明 |
64
- | ------------------------ | ------------------------------------------------------ |
65
- | `DEVECO_CLI_STUDIO_PATH` | 显式指定 DevEco Studio 安装根,优先级最高 |
66
- | `DEVECO_CLI_CLT_PATH` | 显式指定 Command Line Tools 安装根 |
67
-
68
- 完整优先级链:
69
-
70
- ```text
71
- DEVECO_CLI_STUDIO_PATH > DEVECO_CLI_CLT_PATH > Auto_Detect
72
- ```
73
-
74
- ### 平台与版本约束
75
-
76
- | 平台 | DevEco Studio Auto_Detect | Command Line Tools | 最低版本 |
77
- | ------- | --------------------------------------------- | ------------------ | ----------------------------- |
78
- | Windows | 支持 | 可选 | Studio `6.0.0` / CLT `26.0.0` |
79
- | macOS | 支持 | 可选 | 同上 |
80
- | Linux | 不支持 | 必选 | CLT `26.0.0` |
81
-
82
- ### 使用示例
83
-
84
- ```bash
85
- # 设置 DevEco Studio
86
- export DEVECO_CLI_STUDIO_PATH="/Applications/DevEco-Studio.app" (可带或不带尾部 Contents)
87
- devecocli device list
88
-
89
- # 设置 CLT
90
- export DEVECO_CLI_CLT_PATH=/opt/command-line-tools
91
- devecocli device list
92
- ```
93
-
94
60
  ## AI Agent 集成
95
61
 
96
62
  `DevEco CLI` 支持通过命令行将自身技能添加到 `Agent` 中。下面以 `opencode` 为例展示最短流程:
@@ -107,22 +73,15 @@ cd MyApp
107
73
  opencode
108
74
  ```
109
75
 
110
- 也支持 `atomcode`等 Agent,使用方式相同:
111
-
112
- ```bash
113
- # 给 atomcode 安装技能
114
- devecocli init --agent atomcode
115
- ```
116
-
117
76
  如果 `Agent` 不在 `--agent` 参数取值范围内,可使用 `--path` 参数进行添加,参考如下命令:
118
77
 
119
78
  ```bash
120
- devecocli init --path D:\work\ARKTS\NewData
79
+ devecocli init --path .\work\ARKTS\NewData
121
80
  ```
122
81
 
123
82
  进入 `Agent` 后可以直接描述任务,例如:
124
83
 
125
- - `Build this project in release mode and run it on my emulator`
84
+ - `Build this project in release mode and run it on my device`
126
85
  - `Tail the last error logs from this app`
127
86
  - `Check for syntax errors in src/main/ets/pages/Index.ets`
128
87
 
@@ -135,19 +94,11 @@ devecocli init --path D:\work\ARKTS\NewData
135
94
  | `devecocli check lint` | 检查代码规范并输出实践建议与报告 |
136
95
  | `devecocli run` | 安装并运行应用 |
137
96
  | `devecocli device list` | 查看当前连接设备 |
138
- | `devecocli emulator list` | 查看本地模拟器实例 |
139
- | `devecocli ui layout` | 导出设备屏幕上的 UI 节点树(布局、坐标、节点 ID) |
140
- | `devecocli ui window list` | 查看设备窗口列表(为 `ui layout` / `ui click` 等提供窗口 ID) |
141
- | `devecocli ui screenshot` | 对真机或模拟器执行 UI 截图 |
142
- | `devecocli ui click` | 点击指定坐标或节点 ID |
143
- | `devecocli ui swipe` | 自定义滑动(指定起点、终点和速度) |
144
- | `devecocli ui text` | 输入文本到焦点或指定位置 |
145
97
  | `devecocli log` | 查看 `hilog` 或崩溃日志 |
146
98
  | `devecocli docs search` | 搜索本地 HarmonyOS 文档 |
147
99
  | `devecocli init` | 安装内置技能或配置 `MCP` |
148
100
  | `devecocli skills` | 管理 HarmonyOS 技能市场中的技能 |
149
101
  | `devecocli signature generate` | 自动生成调试签名材料并配置到项目 |
150
- | `devecocli check compat` | 扫描源代码在两个 `SDK` 版本之间的 `API` 变更 |
151
102
 
152
103
  ## 命令集
153
104
 
@@ -176,9 +127,6 @@ Commands:
176
127
  run [options] Build and run the project on a connected device
177
128
  update Update deveco-cli to the latest version
178
129
  device Manage connected devices
179
- emulator Manage emulator instances
180
- auth Authentication commands (login, logout, status, team)
181
- ui Inspect and interact with UI on a connected device
182
130
  skills Manage HarmonyOS skills
183
131
  log [options] Obtain device application logs
184
132
  create [options] Scaffold a new HarmonyOS application project
@@ -218,12 +166,12 @@ devecocli init --agent <agents> --project <path> --path <path> --skill --mcp --f
218
166
  devecocli init -f # 安装或更新deveco-cli Skill
219
167
  devecocli init --skill
220
168
  devecocli init --agent agentname # agentname需替换为实际的智能体名称
221
- devecocli init --path D:\work\ARKTS\NewData -f
169
+ devecocli init --path /path/to/project -f
222
170
 
223
171
  # 配置MCP
224
172
  devecocli init --mcp
225
173
  devecocli init --mcp --agent agentname # agentname需替换为实际的智能体名称
226
- devecocli init --mcp --project D:\work\ARKTS\NewData -f
174
+ devecocli init --mcp --project /path/to/project -f
227
175
  ```
228
176
 
229
177
  ### `docs search`
@@ -243,7 +191,7 @@ devecocli docs search <keywords...> --catalog <name> --format <fmt> --limit <n>
243
191
  | keywords... | 必选,搜索关键词,多个关键词用空格隔开 |
244
192
  | --catalog | 可选,文档类别,取值包含`harmonyos-releases`(版本说明)、 `harmonyos-guides`(指南)、`harmonyos-references`(API参考)、`best-practices`(最佳实践)、`harmonyos-faqs`(FAQ)、`harmonyos-roadmap`(变更预告)、`all`(所有分类,默认) |
245
193
  | --format | 可选,控制输出格式,取值包括 `default` 、`json` ,默认为`default` ,输出结果包括文档ID、标题、文档的概括内容 |
246
- | --limit | 可选,设置搜索结果返回条数,默认为10 |
194
+ | --limit | 可选,设置搜索结果返回条数,默认为20 |
247
195
 
248
196
  **示例:**
249
197
 
@@ -325,56 +273,6 @@ devecocli create --project-path ./MyApp --app-name MyApp --bundle-name com.acme.
325
273
  devecocli create --app-name MyApp
326
274
  ```
327
275
 
328
- ### `auth login`
329
-
330
- 登录华为开发者账号,打开浏览器完成授权。
331
-
332
- **命令格式:**
333
-
334
- ```bash
335
- devecocli auth login
336
- ```
337
-
338
- **说明:**
339
-
340
- - 海外账户暂不支持
341
-
342
- ### `auth logout`
343
-
344
- 登出并清除本地存储的凭据
345
-
346
- **命令格式:**
347
-
348
- ```bash
349
- devecocli auth logout
350
- ```
351
-
352
- ### `auth status`
353
-
354
- 显示当前登录的用户
355
-
356
- **命令格式:**
357
-
358
- ```bash
359
- devecocli auth status
360
- ```
361
-
362
- ### `auth team list`
363
-
364
- 列出当前用户已加入的团队
365
-
366
- **命令格式:**
367
-
368
- ```bash
369
- devecocli auth team list
370
- ```
371
-
372
- **示例:**
373
-
374
- ```bash
375
- devecocli auth team list
376
- ```
377
-
378
276
  ### `build`
379
277
 
380
278
  编译并打包 HarmonyOS 工程或工程中的模块
@@ -418,80 +316,6 @@ devecocli build --product oversea --modules entry --build-mode release
418
316
  devecocli build clean
419
317
  ```
420
318
 
421
- ### `check compat`
422
-
423
- 基于 `DevEco Studio` 自带的 `apkanalyzer-apiscan` 插件,扫描源代码在两个 `SDK` 版本之间的 `API` 变更情况。
424
-
425
- **子命令:**
426
-
427
- | 子命令 | 说明 |
428
- | --- | --- |
429
- | `devecocli check compat` | 默认执行工程级扫描 |
430
- | `devecocli check compat --modules <m1> [m2...]` | 按模块扫描 |
431
- | `devecocli check compat <file1> [file2...]` | 按文件扫描(仅支持 `.ets`/`.c`/`.cpp`) |
432
- | `devecocli check compat versions` | 列出可用的目标 `SDK` 版本 |
433
-
434
- **命令格式:**
435
-
436
- ```bash
437
- devecocli check compat [files...] --source-version <ver> --target-version <ver> [--modules <m...>] [--format <default|csv|json>] [--output-path <path>] [--limit <n>]
438
- ```
439
-
440
- **参数:**
441
-
442
- | 参数名 | 说明 |
443
- | --- | --- |
444
- | `--source-version` | 必填,当前工程 `SDK` 版本 |
445
- | `--target-version` | 必填,目标 `SDK` 版本 |
446
- | `--modules` | 可选,指定扫描的模块(多个以空格分隔)。与文件参数互斥 |
447
- | `--format` | 可选,输出格式。`default`/`csv`/`json`。默认 `default`(控制台输出文本,文件输出 `csv`) |
448
- | `--output-path` | 可选,报告输出路径。目录或文件(扩展名必须与 `--format` 匹配) |
449
- | `--limit` | 可选,控制台显示的最大记录数,默认 `100` |
450
-
451
- **版本号说明:**
452
-
453
- - 可用版本可通过 `devecocli check compat versions` 查看
454
- - `zsh` 环境下版本号需用引号包裹(包含括号),例如 `"<source_version>"`、`"<target_version>"`
455
-
456
- **`compat versions` 参数:**
457
-
458
- | 参数名 | 说明 |
459
- | --- | --- |
460
- | `--format` | 可选,输出格式。`default` 或 `json`。默认 `default`(文本输出,每行一个版本号) |
461
-
462
- **格式与输出组合:**
463
-
464
- | 场景 | 允许的 `--format` | 行为 |
465
- | --- | --- | --- |
466
- | 控制台输出(无 `--output-path`) | `default` / `json` | `default` 输出文本表格,`json` 输出 `JSON` |
467
- | 文件输出(`--output-path <file>`,扩展名必须匹配 `--format`) | `default` / `csv` / `json` | `default`/`csv` 写 `.csv` 文件;`json` 写 `.json` 文件 |
468
- | 目录输出(`--output-path <dir>`,无扩展名) | `default` / `csv` / `json` | `default`/`csv` 生成 `apiChange-res{N}.csv`;`json` 生成 `apiChange-res{N}.json` |
469
-
470
- **示例:**
471
-
472
- ```bash
473
- # 工程级扫描,输出到控制台
474
- devecocli check compat --source-version "<source_version>" --target-version "<target_version>"
475
-
476
- # 输出 JSON 到控制台
477
- devecocli check compat --format json --source-version "<source_version>" --target-version "<target_version>"
478
-
479
- # 输出报告到目录(默认 csv)
480
- devecocli check compat --output-path ./report --source-version "<source_version>" --target-version "<target_version>"
481
-
482
- # 输出 JSON 报告到目录(生成 apiChange-res{N}.json)
483
- devecocli check compat --output-path ./report --format json --source-version "<source_version>" --target-version "<target_version>"
484
-
485
- # 输出报告到指定文件
486
- devecocli check compat --output-path ./report.json --format json --source-version "<source_version>" --target-version "<target_version>"
487
-
488
- # 文件级扫描
489
- devecocli check compat ./entry/src/main/ets/pages/Index.ets --source-version "<source_version>" --target-version "<target_version>"
490
-
491
- # 模块级扫描
492
- devecocli check compat --modules entry har1 --source-version "<source_version>" --target-version "<target_version>"
493
- ```
494
-
495
319
  ### `check lint`
496
320
 
497
321
  检查代码规范并输出实践建议与报告。
@@ -511,294 +335,20 @@ devecocli check lint [path]
511
335
  | `--fix` | 自动修复可修复的问题 |
512
336
  | `--incremental` | 仅检查 Git 未提交文件 |
513
337
  | `--product <name>` | `build-profile.json5` 中定义的 product,默认为 `default` |
514
- | `--format <default\|json>` | 完整报告格式;`default` 输出 Markdown,`json` 输出 JSON;要求 DevEco Studio ≥ 6.1.0 |
515
- | `--output-path <path>` | 完整报告文件或目录,目录形式会自动生成带时间戳的报告文件;要求 DevEco Studio ≥ 6.1.0 |
338
+ | `--format <default\|json>` | 完整报告格式;`default` 输出 Markdown,`json` 输出 JSON |
339
+ | `--output-path <path>` | 完整报告文件或目录;目录形式会自动生成带时间戳的报告文件 |
516
340
  | `--limit <number>` | 未指定 `--output-path` 时,限制终端显示的问题数量 |
517
341
 
518
- `emulator` 版本要求: DevEco Studio ≥ 6.1.0
519
-
520
- ### `emulator list`
521
-
522
- 查看模拟器实例
523
-
524
- **命令格式:**
525
-
526
- ```bash
527
- devecocli emulator list [--format <table|json>]
528
- ```
529
-
530
- **参数:**
531
-
532
- | 参数名 | 说明 |
533
- | --- | --- |
534
- | `--format` | 可选,控制终端输出格式,取值为 `table` 或 `json`,默认为 `table` |
535
-
536
- **示例:**
537
-
538
- ```bash
539
- devecocli emulator list
540
- devecocli emulator list --format json
541
- ```
542
-
543
- ### `emulator start`
544
-
545
- 启动模拟器。首次使用时,需要签署 HarmonyOS 软件许可与服务协议,具体请参考 `emulator license`
546
-
547
- **命令格式:**
548
-
549
- ```bash
550
- devecocli emulator start [names...]
551
- ```
552
-
553
- **参数:**
554
-
555
- | 参数名 | 说明 |
556
- | ----------- | ----------------------------------------- |
557
- | \[names...] | 必选,模拟器实例名称,多个名称用空格隔开。若名称中带有空格,则名称需要添加英文引号 |
558
-
559
- **示例:**
560
-
561
- ```bash
562
- devecocli emulator start Phone
563
- devecocli emulator start Phone1 Phone2
564
- ```
565
-
566
- **说明:**
567
-
568
- - `emulator start` 命令仅支持启动 `release` 版本的模拟器
569
-
570
- ### `emulator stop`
571
-
572
- 关闭模拟器
573
-
574
- **命令格式:**
575
-
576
- ```bash
577
- devecocli emulator stop [names...]
578
- ```
579
-
580
- **参数:**
581
-
582
- | 参数名 | 说明 |
583
- | ----------- | ----------------------------------------- |
584
- | \[names...] | 必选,模拟器实例名称,多个名称用空格隔开。若名称中带有空格,则名称需要添加英文引号 |
585
-
586
- **示例:**
587
-
588
- ```bash
589
- devecocli emulator stop Phone
590
- devecocli emulator stop 127.0.0.1:5555
591
- ```
592
-
593
- ### `emulator` 场景操作
594
-
595
- 控制运行中的模拟器实例,直接映射 DevEco Studio 内置 Emulator 公开命令行参数。新增场景控制命令要求 Emulator 7.0 或更高版本;低版本会直接提示升级。截图不属于模拟器场景操作,统一通过 `devecocli ui screenshot` 执行。
596
-
597
- **示例:**
598
-
599
- ```bash
600
- devecocli emulator shake --target Phone
601
- devecocli emulator power --target Phone
602
- devecocli emulator rotate left --target Phone
603
- devecocli emulator volume up --target Phone
604
- devecocli emulator fold half-open --target Phone
605
- devecocli emulator battery --target Phone --level 90
606
- devecocli emulator battery --target Phone --status charging
607
- devecocli emulator geolocation --target Phone --longitude 116.400244
608
- devecocli emulator scene outdoorRunning --target Phone
609
- devecocli emulator sensor --target Phone --heartrate 80
610
- ```
611
-
612
- **说明:**
613
-
614
- - `--target` 支持模拟器名称或 `127.0.0.1:<port>` 序列号。
615
- - `battery --level` 会自动查询模拟器当前充电状态:充电时取值范围为整数 `[0, 100]`,未充电时为 `[1, 100]`。
616
- - `battery --status` 取值为 `charging` 或 `discharging`。
617
- - `geolocation` 支持 `--longitude`、`--latitude`、`--altitude`、`--direction`。
618
- - `scene` 取值为 `outdoorRunning`、`outdoorCycling`、`drivingNavigation`。
619
- - `sensor` 支持 `--light-intensity`、`--humidity`、`--temperature`、`--steps`、`--heartrate`。
620
- - `fold <state>` 会根据目标模拟器的设备类型校验状态,设备与参数必须匹配:
621
-
622
- | 设备类型 | 支持的 `state` |
623
- | --- | --- |
624
- | `foldable` | `open`、`half-open`、`close` |
625
- | `2in1_foldable` | `open`、`vertical-open`、`half-open`、`close` |
626
- | `triplefold` | `single`、`double`、`triple`、`left-folded-right-half-folded`、`left-half-folded-right-expanded`、`left-expanded-right-folded`、`left-half-folded-right-folded`、`left-expanded-right-half-folded`、`left-half-folded-right-half-folded` |
627
-
628
- 校验以目标模拟器实际返回的 `deviceType` 为准。非上述三种设备类型以及不属于目标设备类型的状态会在命令下发前被拒绝。校验通过后,底层映射为 `Emulator -instance <name> -foldedState <state>`。
629
- - 设置 `DEVECO_CLI_DEBUG=1` 可查看底层命令映射,例如 `Emulator -instance <name> -shake`。
630
-
631
- ### `emulator create`
632
-
633
- 创建模拟器
634
-
635
- **命令格式:**
636
-
637
- ```bash
638
- devecocli emulator create <name> --device-type <type> --os-version <version> --force
639
- ```
640
-
641
- **参数:**
642
-
643
- | 参数名 | 说明 |
644
- | ------------- | ------------------------------------------------------------------------------------------------------------------------------- |
645
- | name | 必选,模拟器名称 |
646
- | --device-type | 必选,模拟器设备类型,支持 `phone` , `foldable` , `widefold` , `triplefold` , `tablet` , `2in1` , `2in1 foldable` , `tv` , `wearable` ,全小写 |
647
- | --os-version | 必选,模拟器镜像版本 |
648
- | --force | 可选,覆盖已有同名的模拟器 |
649
-
650
- **示例:**
651
-
652
- ```bash
653
- devecocli emulator create MyPhone --device-type phone --os-version "HarmonyOS 6.0.1(21)"
654
- ```
655
-
656
- ### `emulator delete`
657
-
658
- 创建模拟器
659
-
660
- **命令格式:**
661
-
662
- ```bash
663
- devecocli emulator delete <name>
664
- ```
665
-
666
- **参数:**
667
-
668
- | 参数名 | 说明 |
669
- | ---- | -------------- |
670
- | name | 必选,模拟器实例名称或序列号 |
671
-
672
- **示例:**
673
-
674
- ```bash
675
- devecocli emulator delete MyPhone
676
- ```
677
-
678
- ### `emulator image list`
679
-
680
- 查询模拟器镜像列表
681
-
682
- **命令格式:**
683
-
684
- ```bash
685
- devecocli emulator image list --device-type <type> --all --format <format>
686
- ```
687
-
688
- **参数:**
689
-
690
- | 参数名 | 说明 |
691
- | ------------- | -------------------------------------------------------------------------------------------------------------------------- |
692
- | --device-type | 可选,模拟器设备类型,支持 `phone` , `foldable` , `widefold` , `triplefold` , `tablet` , `2in1` , `2in1 foldable` , `tv` , `wearable` |
693
- | --all | 可选,查询已下载和未下载的所有镜像 |
694
- | --format | 可选,控制输出格式,取值为 `table` 或 `json` ,默认为 `table` |
695
-
696
- **示例:**
697
-
698
- ```bash
699
- devecocli emulator image list
700
- devecocli emulator image list --all
701
- devecocli emulator image list --device-type phone
702
- devecocli emulator image list --format json
703
- ```
704
-
705
- ### `emulator image download`
706
-
707
- 下载模拟器镜像。首次使用时,需要签署 HarmonyOS `SDK` 许可协议,具体请参考 `emulator license`
708
-
709
- **命令格式:**
710
-
711
- ```bash
712
- devecocli emulator image download --device-type <type> --os-version <version> --force
713
- ```
714
-
715
- **参数:**
716
-
717
- | 参数名 | 说明 |
718
- | ------------- | ------------------------------------------------------------------------------------------------------------------------------- |
719
- | --device-type | 必选,模拟器设备类型,支持 `phone` , `foldable` , `widefold` , `triplefold` , `tablet` , `2in1` , `2in1 foldable` , `tv` , `wearable` ,全小写 |
720
- | --os-version | 必选,模拟器镜像版本 |
721
- | --force | 可选,覆盖已有的模拟器镜像 |
722
-
723
- **示例:**
724
-
725
- ```bash
726
- devecocli emulator image download --device-type phone --os-version "HarmonyOS 6.0.1(21)" --force
727
- ```
728
-
729
- **说明:**
730
-
731
- - `emulator image download` 命令仅支持下载 `release` 版本的模拟器镜像
732
-
733
- ### `emulator image remove`
734
-
735
- 删除模拟器镜像
736
-
737
- **命令格式:**
738
-
739
- ```bash
740
- devecocli emulator image remove --device-type <type> --os-version <version>
741
- ```
742
-
743
- **参数:**
744
-
745
- | 参数名 | 说明 |
746
- | ------------- | ------------------------------ |
747
- | --device-type | 必选,模拟器设备类型,与下载镜像的device-type一致 |
748
- | --os-version | 必选,模拟器镜像版本,与下载镜像的os-version一致 |
749
-
750
- **示例:**
751
-
752
- ```bash
753
- devecocli emulator image remove --device-type phone --os-version "HarmonyOS 6.0.1(21)"
754
- ```
755
-
756
- ### `emulator license view`
757
-
758
- 查看协议文本(只读)
759
-
760
- **命令格式:**
761
-
762
- ```bash
763
- devecocli emulator license view
764
- ```
765
-
766
- ### `emulator license`
767
-
768
- 交互式查看并接受协议。打印完整协议文本后提示 y/N 确认。使用模拟器需要同意 HarmonyOS 软件许可与服务协议,下载镜像需要同意 HarmonyOS `SDK` 许可协议。若已同意则直接提示已接受。非交互终端下会报错,请改用 `emulator license accept`
769
-
770
- **命令格式:**
771
-
772
- ```bash
773
- devecocli emulator license
774
- ```
775
-
776
- ### `emulator license accept`
777
-
778
- 非交互式同意模拟器所有协议,直接写入同意记录,跳过协议展示和确认提示。适用于自动化脚本、CI 或非交互终端环境。若已同意则直接提示已接受
779
-
780
- **命令格式:**
781
-
782
- ```bash
783
- devecocli emulator license accept
784
- ```
785
-
786
342
  ### `device list`
787
343
 
788
- 查询所有已连接的设备,包括真机设备和运行中的模拟器
344
+ 查询所有已连接的设备
789
345
 
790
346
  **命令格式:**
791
347
 
792
348
  ```bash
793
- devecocli device list [--format <table|json>]
349
+ devecocli device list
794
350
  ```
795
351
 
796
- **参数:**
797
-
798
- | 参数名 | 说明 |
799
- | --- | --- |
800
- | --format | 可选,输出格式。可选值:`table`、`json`,默认 `table` |
801
-
802
352
  ### `device view`
803
353
 
804
354
  查询已连接的设备的详细信息,包括设备序列号、设备名称、设备类型、 `OS` 版本等
@@ -806,7 +356,7 @@ devecocli device list [--format <table|json>]
806
356
  **命令格式:**
807
357
 
808
358
  ```bash
809
- devecocli device view [--target <serialOrName>] [--format <table|json>]
359
+ devecocli device view --target <serialOrName>
810
360
  ```
811
361
 
812
362
  **参数:**
@@ -814,7 +364,6 @@ devecocli device view [--target <serialOrName>] [--format <table|json>]
814
364
  | 参数名 | 说明 |
815
365
  | ----------- | ------------------------------------- |
816
366
  | -t,--target | 可选,目标设备名称或序列号。多设备缺省时,会列出所有已连接设备序列号和名称 |
817
- | --format | 可选,输出格式。可选值:`table`、`json`,默认 `table` |
818
367
 
819
368
  **示例:**
820
369
 
@@ -822,342 +371,11 @@ devecocli device view [--target <serialOrName>] [--format <table|json>]
822
371
  devecocli device view
823
372
  devecocli device view --target 127.0.0.1:5555
824
373
  devecocli device view -t "My Device Name"
825
- devecocli device view -t 127.0.0.1:5555 --format json
826
374
  ```
827
375
 
828
- ### `ui screenshot`
829
-
830
- 对真机或模拟器执行 UI 截图。
831
-
832
- **命令格式:**
833
-
834
- ```bash
835
- devecocli ui screenshot --device <name|serial> --display <displayId> --path <path>
836
- ```
837
-
838
- **参数:**
839
-
840
- | 参数 | 说明 | 默认值 |
841
- | ------------------------ | ------------------------ | ---------- |
842
- | --device \<name\|serial> | 真机或模拟器名称/序列号;多设备时必填 | 单设备自动选择 |
843
- | --display \<displayId> | 目标屏幕 ID,可选 | 默认屏幕 |
844
- | --path \<path> | 必填,文件夹路径或 PNG 文件路径;支持相对于当前目录的路径,目录必须存在且可写,目标文件不能已存在 | 无 |
845
-
846
- **示例:**
847
-
848
- ```bash
849
- mkdir -p screenshots
850
- devecocli ui screenshot --device Phone --path ./screenshots
851
- devecocli ui screenshot --device Phone --display 0 --path ./screenshots/phone.png
852
- ```
853
-
854
- **说明:**
855
-
856
- - `ui screenshot` 支持真机和模拟器。
857
- - 仅有一个可用设备时可省略 `--device`,多个设备同时连接时必须指定。
858
- - `--path` 可以使用相对于当前目录的路径。可以指定已存在的文件夹并自动生成 PNG 文件名,也可以指定完整的 PNG 文件路径;不会自动创建目录或覆盖已有文件。
859
- - 截图能力统一通过 `ui screenshot` 提供,不放在模拟器场景操作命令中。
860
- - 截图统一使用 `hdc shell snapshot_display` 和 `hdc file recv` 实现;设置 `DEVECO_CLI_DEBUG=1` 可查看实际执行命令。
861
-
862
- ### `ui click`
863
-
864
- 点击指定坐标或节点 ID 的中心位置。
865
-
866
- **命令格式:**
867
-
868
- ```bash
869
- devecocli ui click [x] [y] --device <name|serial> --id <id> --window <windowId>
870
- ```
871
-
872
- **参数:**
873
-
874
- | 参数 | 说明 |
875
- | --- | --- |
876
- | `[x] [y]` | 可选,目标坐标。缺省时需配合 `--id` 使用 |
877
- | --device \<name\|serial> | 目标设备,多设备时必填 |
878
- | --id \<id> | 节点 ID,自动解析为中心坐标。不可与 `[x] [y]` 同时使用 |
879
- | --window \<windowId> | 目标窗口 ID,需与 `--id` 配合使用 |
880
-
881
- **示例:**
882
-
883
- ```bash
884
- devecocli ui click 100 200
885
- devecocli ui click 100 200 --device Phone
886
- devecocli ui click --id submit_button
887
- devecocli ui click --id submit_button --window main_window
888
- ```
889
-
890
- ### `ui doubleclick`
891
-
892
- 双击指定坐标或节点 ID 的中心位置。
893
-
894
- **命令格式:**
895
-
896
- ```bash
897
- devecocli ui doubleclick [x] [y] --device <name|serial> --id <id> --window <windowId>
898
- ```
899
-
900
- **参数:**
901
-
902
- | 参数 | 说明 |
903
- | --- | --- |
904
- | `[x] [y]` | 可选,目标坐标。缺省时需配合 `--id` 使用 |
905
- | --device \<name\|serial> | 目标设备,多设备时必填 |
906
- | --id \<id> | 节点 ID,自动解析为中心坐标。不可与 `[x] [y]` 同时使用 |
907
- | --window \<windowId> | 目标窗口 ID,需与 `--id` 配合使用 |
908
-
909
- **示例:**
910
-
911
- ```bash
912
- devecocli ui doubleclick 100 200
913
- devecocli ui doubleclick 100 200 --device Phone
914
- devecocli ui doubleclick --id photo_thumb
915
- devecocli ui doubleclick --id photo_thumb --window main_window
916
- ```
917
-
918
- ### `ui longclick`
919
-
920
- 长按指定坐标或节点 ID 的中心位置。
921
-
922
- **命令格式:**
923
-
924
- ```bash
925
- devecocli ui longclick [x] [y] --device <name|serial> --id <id> --window <windowId>
926
- ```
927
-
928
- **参数:**
929
-
930
- | 参数 | 说明 |
931
- | --- | --- |
932
- | `[x] [y]` | 可选,目标坐标。缺省时需配合 `--id` 使用 |
933
- | --device \<name\|serial> | 目标设备,多设备时必填 |
934
- | --id \<id> | 节点 ID,自动解析为中心坐标。不可与 `[x] [y]` 同时使用 |
935
- | --window \<windowId> | 目标窗口 ID,需与 `--id` 配合使用 |
936
-
937
- **示例:**
938
-
939
- ```bash
940
- devecocli ui longclick 100 200
941
- devecocli ui longclick 100 200 --device Phone
942
- devecocli ui longclick --id menu_item
943
- devecocli ui longclick --id menu_item --window main_window
944
- ```
945
-
946
- ### `ui swipe`
947
-
948
- 自定义滑动(指定起点、终点和速度)。
949
-
950
- **命令格式:**
951
-
952
- ```bash
953
- devecocli ui swipe <x1> <y1> <x2> <y2> --device <name|serial> --speed <n>
954
- ```
955
-
956
- **参数:**
957
-
958
- | 参数 | 说明 |
959
- | --- | --- |
960
- | `<x1> <y1> <x2> <y2>` | 必选,起点和终点坐标 |
961
- | --device \<name\|serial> | 目标设备,多设备时必填 |
962
- | --speed \<n> | 可选,滑动速度(像素/秒),范围 `200` ~ `40000` |
963
-
964
- **示例:**
965
-
966
- ```bash
967
- devecocli ui swipe 100 500 100 200
968
- devecocli ui swipe 100 500 100 200 --device Phone
969
- devecocli ui swipe 100 500 100 200 --speed 1000
970
- ```
971
-
972
- ### `ui fling`
973
-
974
- 快速滑动(Fling)。
975
-
976
- **命令格式:**
977
-
978
- ```bash
979
- devecocli ui fling <x1> <y1> <x2> <y2> --device <name|serial> --speed <n>
980
- ```
981
-
982
- **参数:**
983
-
984
- | 参数 | 说明 |
985
- | --- | --- |
986
- | `<x1> <y1> <x2> <y2>` | 必选,起点和终点坐标 |
987
- | --device \<name\|serial> | 目标设备,多设备时必填 |
988
- | --speed \<n> | 可选,滑动速度(像素/秒),范围 `200` ~ `40000` |
989
-
990
- **示例:**
991
-
992
- ```bash
993
- devecocli ui fling 100 800 100 200
994
- devecocli ui fling 100 800 100 200 --device Phone
995
- devecocli ui fling 100 800 100 200 --speed 3000
996
- ```
997
-
998
- ### `ui drag`
999
-
1000
- 拖拽操作。
1001
-
1002
- **命令格式:**
1003
-
1004
- ```bash
1005
- devecocli ui drag <x1> <y1> <x2> <y2> --device <name|serial> --speed <n>
1006
- ```
1007
-
1008
- **参数:**
1009
-
1010
- | 参数 | 说明 |
1011
- | --- | --- |
1012
- | `<x1> <y1> <x2> <y2>` | 必选,起点和终点坐标 |
1013
- | --device \<name\|serial> | 目标设备,多设备时必填 |
1014
- | --speed \<n> | 可选,滑动速度(像素/秒),范围 `200` ~ `40000` |
1015
-
1016
- **示例:**
1017
-
1018
- ```bash
1019
- # 拖拽操作
1020
- devecocli ui drag 100 500 100 200
1021
- devecocli ui drag 100 500 100 200 --device Phone
1022
- devecocli ui drag 100 500 100 200 --speed 1500
1023
- ```
1024
-
1025
- ### `ui dircfling`
1026
-
1027
- 向指定方向快速滑动。
1028
-
1029
- **命令格式:**
1030
-
1031
- ```bash
1032
- devecocli ui dircfling <direction> --device <name|serial>
1033
- ```
1034
-
1035
- **参数:**
1036
-
1037
- | 参数 | 说明 |
1038
- | --- | --- |
1039
- | `<direction>` | 必选,方向,取值为 `up`, `down`, `left`, `right` |
1040
- | --device \<name\|serial> | 目标设备,多设备时必填 |
1041
-
1042
- **示例:**
1043
-
1044
- ```bash
1045
- devecocli ui dircfling up
1046
- devecocli ui dircfling down --device Phone
1047
- devecocli ui dircfling left
1048
- devecocli ui dircfling right
1049
- ```
1050
-
1051
- **与 `ui swipe` 的区别:**
1052
-
1053
- - `ui swipe` 需要指定精确的起点和终点坐标,支持自定义速度,适用于特定区域滑动。
1054
- - `ui dircfling` 仅需指定方向,使用系统默认速度,适用于页面滚动或列表快速滑动。
1055
-
1056
- ### `ui text`
1057
-
1058
- 输入文本到当前焦点、指定坐标或指定节点位置。
1059
-
1060
- **命令格式:**
1061
-
1062
- ```bash
1063
- devecocli ui text <text> [x] [y] --device <name|serial> --id <id> --window <windowId>
1064
- ```
1065
-
1066
- **参数:**
1067
-
1068
- | 参数 | 说明 |
1069
- | --- | --- |
1070
- | `<text>` | 必选,待输入的文本 |
1071
- | `[x] [y]` | 可选,目标坐标 |
1072
- | --device \<name\|serial> | 目标设备,多设备时必填 |
1073
- | --id \<id> | 节点 ID,自动解析为中心坐标。不可与 `[x] [y]`同时使用 |
1074
- | --window \<windowId> | 目标窗口 ID,需与 `--id` 配合使用 |
1075
-
1076
- **示例:**
1077
-
1078
- ```bash
1079
- devecocli ui text "Hello World"
1080
- devecocli ui text "Hello World" --device Phone
1081
- devecocli ui text "Hello World" 100 200
1082
- devecocli ui text "Hello World" --id search_box
1083
- devecocli ui text "Hello World" --id search_box --window main_window
1084
- ```
1085
-
1086
- ### `ui layout`
1087
-
1088
- 导出设备屏幕上的 UI 节点树,输出每个节点的类型、节点 ID、坐标边界 `[left,top,right,bottom]`、文本及可交互标志(`clickable` / `longClickable` / `scrollable` / `checkable`)。
1089
-
1090
- **命令格式:**
1091
-
1092
- ```bash
1093
- devecocli ui layout --device <name|serial> --id <id> --window <windowId> --all-windows --depth <n> --format <fmt> --mode <full|simplified>
1094
- ```
1095
-
1096
- **参数:**
1097
-
1098
- | 参数名 | 说明 |
1099
- | --- | --- |
1100
- | --device \<name\|serial> | 目标设备,多设备时必填 |
1101
- | --id \<id> | 节点 ID,筛选树中匹配节点(仅输出匹配节点,不带子节点,强制 JSON)。不可与未筛选的全树输出同时视为列表查询 |
1102
- | --window \<windowId> | 目标窗口 ID,与 `--all-windows` 互斥 |
1103
- | --all-windows | 包含所有窗口,与 `--window` 互斥 |
1104
- | --depth \<n> | 树深度限制,`0`=不限制(默认),`1`=仅根,`2`=根+子节点 |
1105
- | --format | 输出格式,`default` 或 `json`,默认 `default` |
1106
- | --mode | 输出模式:`full`=完整原始树;`simplified`(默认)=折叠无 ID、无文本、无可交互标志的包装节点 |
1107
-
1108
- **示例:**
1109
-
1110
- ```bash
1111
- devecocli ui layout
1112
- devecocli ui layout --device Phone
1113
- devecocli ui layout --device Phone --format json
1114
- devecocli ui layout --mode full --depth 2
1115
- devecocli ui layout --id submit_button
1116
- devecocli ui layout --window 15 --format json
1117
- ```
1118
-
1119
- **说明:**
1120
-
1121
- - `--mode simplified`(默认)会折叠无 `id`、无 `text`、无任何可交互标志的包装节点,使输出聚焦于有意义的可操作节点;根节点始终保留。`--depth` 在折叠后截断。
1122
- - `--id` 用于按节点 ID 查询,返回所有匹配节点(`children` 置空),常配合 `ui click --id` / `ui text --id` 定位坐标。
1123
- - 节点 `bounds` 为 `[left, top, right, bottom]`,`ui click --id` 等交互命令据此取中心坐标点击。
1124
- - `--window` 的窗口 ID 可通过 `devecocli ui window list` 获取。
1125
-
1126
- ### `ui window list`
1127
-
1128
- 查看设备上的窗口列表,输出窗口 ID、名称、PID、所属屏幕 ID 及是否聚焦。为 `ui layout --window`、`ui click --window` 等命令提供窗口 ID。
1129
-
1130
- **命令格式:**
1131
-
1132
- ```bash
1133
- devecocli ui window list --device <name|serial> --format <fmt> --all
1134
- ```
1135
-
1136
- **参数:**
1137
-
1138
- | 参数名 | 说明 |
1139
- | --- | --- |
1140
- | --device \<name\|serial> | 目标设备,多设备时必填 |
1141
- | --format | 输出格式,`default` 或 `json`,默认 `default` |
1142
- | --all | 显示包含系统窗口在内的所有窗口;缺省时仅显示应用窗口(`type === 1`) |
1143
-
1144
- **示例:**
1145
-
1146
- ```bash
1147
- devecocli ui window list
1148
- devecocli ui window list --device Phone
1149
- devecocli ui window list --format json
1150
- devecocli ui window list --all
1151
- ```
1152
-
1153
- **说明:**
1154
-
1155
- - 聚焦窗口在 `default` 格式下高亮显示。
1156
- - 缺省时仅列出应用窗口;加 `--all` 可查看系统窗口,用于排查多窗口场景。
1157
-
1158
376
  ### `run`
1159
377
 
1160
- 构建应用后,将应用安装到真机设备或模拟器上,并启动执行
378
+ 构建应用后,将应用安装到设备上,并启动执行
1161
379
 
1162
380
  **命令格式:**
1163
381
 
@@ -1167,18 +385,16 @@ devecocli run --module <module> --device <device> --product <product> --build-mo
1167
385
 
1168
386
  **参数:**
1169
387
 
1170
- | 参数名 | 说明 |
1171
- | ------------ |------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
1172
- | --module | 可选,模块名称。如需指定模块的 `target` 信息,使用 `module@target` 形式。当工程中只有一个可运行模块( `entry` / `feature` / `shared` )时,可缺省 |
1173
- | --device | 设备名称或设备序列号,单设备时可选,多设备时必选 |
1174
- | --product | 可选,产品的名称,默认为 `default` |
1175
- | --build-mode | 可选,构建模式名称,默认为 `debug` |
1176
- | --ability | 可选,待启动的 `Ability` ,默认:模块 `module.json5` 中的`mainElement` |
1177
- | --uninstall | 可选,安装前先卸载已有应用 |
1178
- | --skip-build | 可选,跳过构建操作,直接安装应用 。\*\*说明:\*\*使用该参数时,需确保对应模块已有构建产物 |
1179
- | --apply \<fileName\> | 可选,**快速增量部署**:仅重编改动文件 → signed hqf → `bm quickfix -a -f -o` 安装 → 重启,比全量 `run` 快。`<fileName>` 是工程 `.hvigor/` 目录下的**纯文件名**(调用方把清单写到此目录,文件名做安全校验防穿越);内容为本轮改动的源文件路径清单(每行一个相对工程根路径;`#`/空行忽略;`.ets`/`.ts`/`.cpp`/资源文件;changeFileList 增量累积,只需列本轮改的,历史文件自动保留)。模块从清单路径自动识别(无需 `--module`)。**前提**:DevEco Studio ≥6.1.1(hvigor `assembleDevHqf` 支持,低于拒绝并提示升级);先 `devecocli run` 全量构建部署一次(生成 buildConfig.json 缓存);**没生效排查**:检查 `<module>/build/config/buildConfig.json` 有无内容(空/无 = 没跑过 `devecocli run`);**失败兜底**:直接 `devecocli run` |
1180
- | --hotreload [action] | 可选,**热重载 watch 会话**(须作为**后台进程**启动,该进程持久持有到 hvigor daemon 的 socket):以热重载模式构建 hap(`hotReload=true debuggable=true`)、部署+拉起应用,然后进程自身连 socket 到 daemon 发 `CommonBuild assembleHap --hot-reload-build --watch` 并**保持连接**,保活 daemon 的 watch worker(rollup watch)供 `--hotreload-apply` 复用。进程常驻(onBuildOutput 流式到其 stdout)。**热重载调试结束必须 kill 此后台进程**(否则 watch worker/daemon 泄漏);`stop` 同时关闭 hvigor daemon。用法:后台起 `devecocli run --module <m> --hotreload`,等 `.hotreload-mode` marker(或 stdout 出现 "watch session active")即就绪,再跑 `--hotreload-apply`;结束 kill 后台进程 + `--hotreload stop` |
1181
- | --hotreload-apply \<fileName\> | 可选,**热重载(不重启应用)**:读取 `.hvigor/<fileName>` 改动清单(格式与 `--apply` 相同),开**短连接** socket 到 daemon(由后台 `--hotreload` 进程保活),发 `CommonBuild assembleDevHqf --hot-compile` → watch worker 增量 hot 编译改动 `.ets`/`.ts` 为 abc(HotReloadArkTS;输出/报错经 WatchLog 实时流式),再**手搓** pack+sign:`app_packing_tool.jar` 打包 + `hap-sign-tool.jar` 签名(DevEco material 密码经 `DecipherUtil` 解密),最后 `bm quickfix -a -f -o` 安装,**应用不重启即生效**。**前提**:后台 `--hotreload` 进程在跑(持有 watch 会话);超时即 watch 会话没活,重启后台 `--hotreload`。**范围(重要)**:热重载目标是**单个模块**(`--module` 必填,目标可为 entry/hsp/feature;`har` 依赖并入、OK);**`feature`/`hsp` 依赖模块**(非目标)的改动不支持热重载(检测并 warn,需全量 `devecocli run` 重部署);资源/native 改动需全量 run。编译报错经 WatchLog 路由到后台 `--hotreload` 进程、落盘 **`.hvigor/hotreload-watch.log`**(+其 stdout),apply 失败时读该文件把报错打出来(~15s 超时快速失败)。**`.hvigor/` 产物**:`.hvigor/<fileName>`=改动清单(入参)、`.hvigor/hotreload-watch.log`=watch 会话的 onBuildOutput/编译报错(后台进程写,可读/可删)。 |
388
+ | 参数名 | 说明 |
389
+ | ------------ | ------------------------------------------------------------------------------------------------------ |
390
+ | --module | 可选,模块名称。如需指定模块的 `target` 信息,使用 `module@target` 形式。当工程中只有一个可运行模块( `entry` / `feature` / `shared` )时,可缺省 |
391
+ | --device | 设备名称或设备序列号,单设备时可选,多设备时必选 |
392
+ | --product | 可选,产品的名称,默认为 `default` |
393
+ | --build-mode | 可选,构建模式名称,默认为 `debug` |
394
+ | --ability | 可选,待启动的 `Ability` ,默认:模块 `module.json5` 中的`mainElement` |
395
+ | --uninstall | 可选,安装前先卸载已有应用 |
396
+ | --skip-build | 可选,跳过构建操作,直接安装应用 。\*\*说明:\*\*使用该参数时,需确保对应模块已有构建产物 |
397
+ | --apply \<fileName\> | 可选,**快速增量部署**:仅重编改动文件 → signed hqf → `bm quickfix -a -f -o` 安装 → 重启,比全量 `run` 快。`<fileName>` 是工程 `.hvigor/` 目录下的**纯文件名**(调用方把清单写到此目录,文件名做安全校验防穿越);内容为本轮改动的源文件路径清单(每行一个相对工程根路径;`#`/空行忽略;`.ets`/`.ts`/`.cpp`/资源文件;changeFileList 增量累积,只需列本轮改的,历史文件自动保留)。模块从清单路径自动识别(无需 `--module`)。**前提**:先 `devecocli run` 全量构建部署一次(生成 buildConfig.json 缓存);**没生效排查**:检查 `<module>/build/config/buildConfig.json` 有无内容(空/无 = 没跑过 `devecocli run`);**失败兜底**:直接 `devecocli run` |
1182
398
 
1183
399
  **示例:**
1184
400
 
@@ -1190,9 +406,6 @@ devecocli run --product oversea --module entry --ability EntryAbility
1190
406
  devecocli run --build-mode release
1191
407
  devecocli run --uninstall
1192
408
  devecocli run --apply changes.txt
1193
- devecocli run --hotreload
1194
- devecocli run --hotreload stop
1195
- devecocli run --hotreload-apply changes.txt
1196
409
  ```
1197
410
 
1198
411
  ### `log`
@@ -1346,9 +559,8 @@ devecocli skills remove --skill skillname --agent agentname # skillname需替
1346
559
  "mcp"
1347
560
  ],
1348
561
  "environment":{
1349
- "PROJECT_PATH": "D:\\code\\sample_project", // 工程路径
562
+ "PROJECT_PATH": "/path/to/project", // 工程路径
1350
563
  "NODE_MAX_OLD_SPACE_SIZE": "8192", // 可选,设置内部node进程最大的老生代内存大小,默认为8192
1351
- "DEVECO_PATH": "D:\\Application\\DevEco Studio" // 可选,Deveco Studio的路径
1352
564
  },
1353
565
  "enbale": true
1354
566
  }
@@ -1527,7 +739,32 @@ devecocli signature generate --help
1527
739
 
1528
740
  ## 常见问题
1529
741
 
1530
- [FAQ](https://gitcode.com/openharmony-sig/deveco-cli/wiki/FAQ.md)
742
+ ### 如何本地推包运行
743
+
744
+ 当没有真机设备连接时,可以通过无线调试实现自连,在本地推包运行应用:
745
+
746
+ **步骤 1:开启无线调试**
747
+
748
+ 在设备上进入:系统 → 开发者选项 → 无线调试,开启无线调试功能。
749
+
750
+ **步骤 2:配置 hdc 命令路径**
751
+
752
+ 将 hdc 工具路径添加到环境变量:
753
+
754
+ ```bash
755
+ export PATH=$PATH:path/to/deveco_tools/sdk/default/openharmony/toolchains
756
+ ```
757
+
758
+ **步骤 3:通过 hdc 命令自连**
759
+
760
+ 使用 hdc 命令连接设备的 IP 和端口:
761
+
762
+ ```bash
763
+ hdc tconn IP:端口
764
+ ```
765
+
766
+ 连接成功后,即可使用 `devecocli run` 命令推包运行应用。
767
+
1531
768
 
1532
769
  ## 开发
1533
770