前言¶
用 uni-app x 做跨端应用时,打包往往要切到 HBuilderX、本机 SDK、签名与 CLI 之间来回对齐;在 DeepSeek Harness 里让 agent 协助改代码的同时,如果还要单独开终端跑检查与构建,上下文很容易断。社区插件 dsh-app-packager(维护者 lw0129a,分类:工作流)把 AppPackager 引擎装进 DSH:同一会话里可以列项目、做环境体检、执行 iOS IPA / Android APK / HarmonyOS HAP 构建,并可选打包后上传。macOS 上功能完整;Windows / Linux 上 list / doctor 等纯 Node 能力可用,check / build 依赖 bash(Git Bash 或 WSL)。
这是什么¶
dsh-app-packager 是 DeepSeek Harness 的 bundle 插件,npm 包名 dsh-app-packager,同时附带可安装的 app-packager CLI 与打包引擎。它面向已在本地或仓库里维护 uni-app x 工程的开发者:在 Harness 里通过 四个 agent 工具 驱动引擎,或在带 Web 应用的 profile 里用侧栏 应用打包 面板点选操作。插件以 MIT 许可发布;安装前建议自行查看 GitHub 仓库 源码与许可证。插件在 当前 DSH 进程权限 下运行,会读写引擎目录中的配置、证书路径与 SDK,使用前请确认环境隔离策略是否符合你的要求。
核心功能¶
Agent 工具(四个)¶
app_packager_list— 读取引擎目录下config/projects/*.env,列出项目 ID、应用名、源码目录是否存在、启用的平台;首次调用会物化引擎目录。app_packager_doctor— 体检本机能否打包:Node、bash 桥接、Xcode / 签名工具、HBuilderX CLI、JDK、Android SDK、DevEco Studio、HarmonyOS 签名目录、项目配置等。参数platform可选ios/android/harmony/all(默认all)。app_packager_check— 调用引擎check子命令,做指定平台的打包前检查;参数platform(默认all)、project(项目 ID,省略则全部)、可选home。app_packager_build— 执行真实打包,超时 90 分钟。必填platform(ios/android/harmony/all);可选project、upload(如pgyer)、noUpload、version、harmonyDebug、keepWork、home。文档建议不确定时先跑app_packager_check。
Web GUI 面板¶
插件注入浏览器侧模块后,侧栏会出现 应用打包 入口(需 profile 含 @deepseek-ai/dsh-web-app;headless profile 无面板,工具仍可用)。面板通过同源 API(如 /api/app-packager/state、/job 等)驱动宿主进程里的引擎,不在浏览器内执行打包逻辑。主要板块包括:引擎初始化与 bash 桥接信息、与 app_packager_doctor 一致的环境检查、SDK 一键配置、项目登记与列表、打包选项与范围(多平台多项目会串行成一条任务,日志标 ▶ i/n)、已归档产物的上传与密钥配置、实时任务日志与停止/清除等。
引擎与 CLI¶
引擎默认目录为 <插件目录>/home,可通过插件配置项 home 或环境变量 APP_PACKAGER_HOME 改写。交互式初始化也可用 CLI:
npx app-packager init
npx app-packager register ~/work/shop
list / doctor 全平台可用;check / build 需要 bash。iOS 构建仅 macOS;非 macOS 上 doctor 会将 iOS 标为不可用。
安装与启用¶
在 Harness 插件市场搜索 AppPackager,或执行:
dsh plugin --profile desktop add dsh-app-packager
安装会一并带上 app-packager CLI 与引擎。装好后重启该 profile 生效。社区目录页:skillhub.cn/plugins/lw0129a/dsh-app-packager(独立社区站点,与 DeepSeek / 幻方无官方从属关系)。
典型用法¶
在会话里让 agent 列项目并体检¶
agent 调用 app_packager_list 后,输出类似:
AppPackager 引擎目录:<插件目录>/home
引擎版本:0.6.2
项目(1):
- shop(商城)
平台: iOS (IPA), Android (APK)
源码: /Users/me/work/shop
再调用 app_packager_doctor,按平台查看失败项与修复提示。
打包前检查与构建¶
先 app_packager_check,确认证书、SDK、CLI 就绪后,再 app_packager_build,例如指定 Android 单项目、打包后不上传:
在工具参数中设置 platform: android、project: shop、noUpload: true(具体字段以 Harness 工具调用界面为准)。
插件配置(可选)¶
可在 profile 的 cordis.patch.yml 中覆盖 id: app-packager 的配置,或在 设置 → 插件 → 插件配置 中修改:
- insert:
- id: app-packager
name: 'dsh-app-packager'
config:
home: ''
searchRoots: []
checkTimeoutMs: 600000
buildTimeoutMs: 5400000
outputLimit: 12000
home 留空时使用 <插件目录>/home 或 APP_PACKAGER_HOME;buildTimeoutMs 默认对应 90 分钟构建超时。
适用场景与注意¶
适合谁: 已在用 DeepSeek Harness 做 uni-app x 开发、希望把「环境检查 → 多平台打包 → 可选上传」收进同一条工作流的团队或个人;macOS 上需要打 iOS 包时尤其对口。
注意:
- 插件与引擎以 DSH 进程身份访问本机工具链与密钥文件;上传板块的 API Key 写入引擎侧
config/upload.local.env(mode 600),GET state只返回是否已配置,不回传明文。 - 换插件版本时,文档强调通过面板 升级插件 或官方升级脚本,避免直接用 pnpm 重装包目录导致
<插件目录>/home内 SDK、证书与项目被删;升级成功后需 重启 DeepSeek Harness(而非仅刷新页面),以便客户端模块清单与服务器 revision 一致。 - Windows 上 iOS 构建不可用;Linux / Windows 上构建路径需 Git Bash 或 WSL。
结尾¶
dsh-app-packager 把 uni-app x 的 AppPackager 流水线嵌入 DSH:agent 四个工具覆盖列表、体检、检查与构建,Web 面板覆盖日常点选操作。进一步了解与 issue 反馈见 GitHub:lw0129a/dsh-app-packager,目录介绍见 skillhub.cn/plugins/lw0129a/dsh-app-packager。