1. 鸿蒙开发里那些重复劳动真的可以交给 AI鸿蒙应用开发最消耗精力的地方往往不是写业务代码而是围绕 hvigorw、hdc、ohpm 这一整套工具链的重复操作。一个典型的多模块项目从改完代码到在真机上看到效果中间要经历依赖安装、模块编译、签名、推包、安装、启动、抓日志这一长串动作。每次都要敲命令、对参数、看设备序列号稍不留神就把 debug 包推到了 release 环境上。harmonyos-build-deploy Skill 想解决的就是这件事。它本质上是给 Claude Code 装上一套「鸿蒙构建部署知识包」让 AI 助手能识别你的鸿蒙工程结构自动选择正确的编译参数按依赖顺序编译模块最后把 HAP 推到设备上并启动。你只需要用自然语言说一句「帮我编译并部署到手机」剩下的链路交给它串联。这篇文章面向已经在用 Claude Code、或者准备把 AI 助手接进鸿蒙工作流的开发者。我会给出可复制的 Skill 配置文件骨架、settings.json 片段以及一次完整的构建部署验证动作。整套流程跑通之后你日常的「改代码 → 看效果」循环会明显变短。需要说明的是Skill 负责的是构建部署自动化业务代码本身还是你自己写AI 不会替你设计页面逻辑。2. 前置准备TaoToken 接入与 Claude Code 环境2.1 为什么需要 TaoTokenClaude Code 本身是一个客户端它需要连接到一个能提供 Claude 模型能力的服务端点。TaoToken 提供的就是这样一个统一接入层你可以在官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 了解它的能力范围API 端点则是 https://taotoken.net/api 。它的作用是让你不用自己折腾模型服务的部署和鉴权直接拿到可用的 API Key 就能在 Claude Code 里调用模型。对鸿蒙开发者来说这意味着你可以把精力放在 Skill 配置和工程本身而不是模型接入的细节上。TaoToken 支持模型对话、Coding Plan、API Keys 管理等能力后面配置 Claude Code 时会用到 API Key。2.2 拿到 API Key登录 TaoToken 控制台后进入 API Keys 页面创建一个新的 Key。建议按用途命名比如claude-code-harmony方便后续区分。创建后立即复制保存页面刷新后通常不再完整显示。拿到 Key 之后你需要把它配置到 Claude Code 的环境变量里。Claude Code 读取的是ANTHROPIC_API_KEY和ANTHROPIC_BASE_URL这两个变量。如果你用的是 TaoToken 的接入端点配置方式如下export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_API_KEYsk-你的TaoToken密钥Windows 下用 PowerShell$env:ANTHROPIC_BASE_URLhttps://taotoken.net/api $env:ANTHROPIC_API_KEYsk-你的TaoToken密钥想长期生效就写进 shell 配置文件比如~/.zshrc或~/.bashrc。配置完成后可以用claude命令启动确认能正常对话再进入 Skill 配置环节。2.3 鸿蒙工具链检查Skill 最终调用的是本机的鸿蒙工具链所以这些必须先装好并能在终端里直接调用node -v # 建议 16 ohpm -v # 鸿蒙包管理器 hvigorw -v # 构建工具通常在项目根目录 hdc list targets # 设备连接检查如果hdc list targets输出为空说明设备没连上或者驱动没装好先解决这一步否则后面部署一定失败。真机需要在开发者模式里打开 USB 调试模拟器则要确保已经启动。3. 可复制的 Skill 配置文件骨架3.1 Skill 目录结构Claude Code 的 Skill 一般放在项目的.claude/skills/目录下每个 Skill 一个子目录里面至少有一个描述文件。推荐结构如下your-harmony-project/ ├── .claude/ │ ├── settings.json │ └── skills/ │ └── harmonyos-build-deploy/ │ ├── SKILL.md │ └── scripts/ │ └── deploy.sh ├── entry/ ├── build-profile.json5 └── oh-package.json5SKILL.md是核心它告诉 Claude 这个 Skill 能做什么、什么时候触发、怎么调用。scripts/deploy.sh是可选的辅助脚本把复杂命令封装起来让 AI 调用更稳定。3.2 SKILL.md 骨架下面这份骨架可以直接复制按你的工程实际情况改包名和模块名--- name: harmonyos-build-deploy description: 用于鸿蒙 HarmonyOS 项目的构建、签名与真机部署。当用户提到编译鸿蒙项目、部署到手机、安装 HAP、启动应用、抓 hilog 日志时触发。 --- # HarmonyOS Build Deploy ## 能力范围 - 识别鸿蒙工程结构build-profile.json5、oh-package.json5 - 按依赖顺序编译多模块项目 - 自动选择 debug/release 构建模式 - 通过 hdc 部署 HAP 到设备并启动 - 抓取 hilog 日志并按包名过滤 ## 执行步骤 1. 检查环境node、ohpm、hvigorw、hdc 是否可用 2. 检查设备hdc list targets确认至少一台设备在线 3. 安装依赖ohpm install 4. 编译hvigorw assembleHap --mode module -p productdefault --no-daemon 5. 定位产物entry/build/default/outputs/default/entry-default-signed.hap 6. 推包安装hdc install hap路径 7. 启动hdc shell aa start -a EntryAbility -b bundleName 8. 日志hdc hilog | grep bundleName ## 注意事项 - 编译失败时先读错误日志定位到具体模块再重试 - 多模块项目必须按依赖拓扑顺序编译 - 部署前确认设备序列号避免推错设备description字段很关键它决定了 Claude 什么时候会主动调用这个 Skill。把「编译鸿蒙」「部署到手机」「安装 HAP」这些高频说法写进去触发率会高很多。3.3 settings.json 片段.claude/settings.json用来声明 Skill 的加载路径和权限。一个可用的片段如下{ skills: { paths: [.claude/skills] }, permissions: { allow: [ Bash(ohpm:*), Bash(hvigorw:*), Bash(hdc:*), Bash(node:*) ] } }permissions.allow里列出的是允许 Claude 自动执行的命令前缀。把 ohpm、hvigorw、hdc 放进去AI 就能在构建部署时直接调用这些工具而不用每次弹确认。如果你对自动执行比较谨慎可以先不加权限观察几次调用行为后再放开。3.4 辅助脚本 deploy.sh把一长串命令封装成脚本能显著降低 AI 调用出错的概率#!/usr/bin/env bash set -e BUNDLE_NAME${1:-com.example.myapp} ABILITY_NAME${2:-EntryAbility} HAP_PATHentry/build/default/outputs/default/entry-default-signed.hap echo [1/5] 检查设备... hdc list targets echo [2/5] 安装依赖... ohpm install echo [3/5] 编译... hvigorw assembleHap --mode module -p productdefault --no-daemon echo [4/5] 安装 HAP... hdc install -r $HAP_PATH echo [5/5] 启动应用... hdc shell aa start -a $ABILITY_NAME -b $BUNDLE_NAME echo 部署完成给脚本加执行权限chmod x .claude/skills/harmonyos-build-deploy/scripts/deploy.sh。之后在 SKILL.md 里把执行步骤改成调用这个脚本AI 的调用会更稳定。4. 验证请求跑通一次构建部署4.1 用自然语言触发配置完成后在 Claude Code 里直接说帮我编译这个鸿蒙项目部署到当前连接的手机上然后启动应用Claude 会先读取 SKILL.md识别出这是构建部署任务然后按步骤执行。你可以在终端里看到它依次调用hdc list targets、ohpm install、hvigorw assembleHap等命令。4.2 观察执行过程一次成功的执行大致是这样的输出节奏检测到鸿蒙工程build-profile.json5 存在 设备列表UDC00012345 HUAWEI Mate 60 Pro 开始安装依赖... ohpm install 完成 开始编译... hvigorw assembleHap 完成耗时 23.4s 产物entry/build/default/outputs/default/entry-default-signed.hap 安装中... install 成功 启动 EntryAbility... 应用已启动如果中间某一步失败Claude 会读取错误输出并给出修复建议。比如编译报错指向某个模块的依赖缺失它会提示你先在对应模块执行ohpm install。4.3 验证应用真的跑起来了部署完成后用两条命令确认hdc shell aa dump -a | grep bundleName hdc hilog | grep bundleName第一条确认应用进程在运行第二条能看到应用输出的日志。如果日志里有你代码里打的console.log或hilog.info说明整条链路真的通了。4.4 切换 debug 与 release日常调试用 debug出包用 release。你只需要在对话里说明用 release 模式重新编译并打包Claude 会把--mode module -p productdefault换成对应的 release 参数。如果 release 需要正式签名提前在build-profile.json5里配好签名信息Skill 会读取工程配置而不是硬编码。5. 本篇常见错排查5.1 hdc list targets 为空最常见的原因是设备没连上。先检查 USB 线、开发者模式、USB 调试开关。模拟器的话确认已经启动并且hdc能识别。如果设备列表里出现unauthorized需要在手机上确认调试授权弹窗。5.2 编译报错找不到模块多模块项目里某个 feature 模块依赖了 library 模块但没在oh-package.json5里声明编译就会失败。Skill 会读错误日志定位到具体模块但依赖声明本身需要你补。补完之后重新触发构建即可。5.3 安装 HAP 报签名错误debug 包用自动签名通常没问题release 包必须用正式签名。检查build-profile.json5里的signingConfigs是否配置正确证书和 profile 文件路径是否存在。签名问题 Skill 无法替你解决它只能把错误原样反馈给你。5.4 Skill 没有被触发如果 Claude 没有调用 Skill而是自己瞎猜命令通常是description写得不够具体。把「鸿蒙」「HarmonyOS」「HAP」「hdc」「部署到手机」这些词补进 description触发率会明显提升。另外确认.claude/settings.json里的skills.paths指向了正确目录。5.5 权限被拦截如果每次调用 hdc 都弹确认说明permissions.allow没生效。检查 settings.json 的 JSON 格式是否正确路径是否相对于项目根目录。改完重启 Claude Code 让配置重新加载。5.6 日志抓不到hdc hilog | grep bundleName没输出可能是应用没真正启动或者日志级别过滤掉了。先用hdc shell aa dump -a确认进程存在再检查代码里是否真的打了日志。hilog 默认级别可能过滤掉 debug 日志需要调整过滤参数。6. 把构建部署交给 AI 之后整套配置跑通之后你日常的鸿蒙开发循环会变成改代码 → 对 Claude 说一句「编译部署到手机」→ 看日志。中间那些命令参数、模块顺序、设备选择都由 Skill 和 AI 帮你处理。如果你还没接入模型服务可以先到 TaoToken 的模型对话页面体验一下对话能力确认接入正常后再配置 Claude Code。API Key 在控制台的 API Keys 页面创建接入文档里有完整的端点说明和参数示例。对于需要长期在鸿蒙项目里用 AI 辅助编码的场景Coding Plan 会更合适它针对持续性的编码任务做了优化不用每次单独管理调用额度。Skill 的价值不在于替代你写代码而在于把那些机械的、容易出错的构建部署动作标准化。你写 SKILL.md 的过程其实也是把团队里「怎么正确编译部署鸿蒙项目」这件事沉淀成可复用的知识。下次换项目、换设备改改包名和路径就能继续用。