dsh-app-packager: Completing the uni-app x Packaging Pipeline in DeepSeek Harness

前言

用 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 工具(四个)

  1. app_packager_list — 读取引擎目录下 config/projects/*.env,列出项目 ID、应用名、源码目录是否存在、启用的平台;首次调用会物化引擎目录。
  2. app_packager_doctor — 体检本机能否打包:Node、bash 桥接、Xcode / 签名工具、HBuilderX CLI、JDK、Android SDK、DevEco Studio、HarmonyOS 签名目录、项目配置等。参数 platform 可选 ios / android / harmony / all(默认 all)。
  3. app_packager_check — 调用引擎 check 子命令,做指定平台的打包前检查;参数 platform(默认 all)、project(项目 ID,省略则全部)、可选 home。
  4. 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。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye