用对话完成 TestFlight 发布、发版体检与合规巡检
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/24 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add sleep9ull/dsh-asc-cli该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-subprocess@deepseek-ai/dsh-tools@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
README
由 DeepSeek 最新模型翻译生成ASC · DeepSeek Harness 的 App Store Connect 操作台
用对话完成 TestFlight 发布、发版体检、反馈分诊与合规巡检。
App Store Connect 是 iOS 发布流程的核心,也是团队最耗时间的地方:命令行参数、大段 JSON、状态机、审批与合规检查。这个插件把它搬进 DeepSeek Harness:安装一次,用自然语言提出需求,Agent 会选对流程、先给出计划,并在真正改动线上之前停下来等你审批。
底层执行引擎仍是 asc CLI(MIT,Go)。本插件是它上层的产品层:5 个任务型作业、按意图组织的读 / 计划 / 变更工具面、随包发布的内置技能,以及负责体检、安装与版本对齐的引擎管理器。
dsh plugin --profile desktop add @sleep9ull/dsh-asc-cli
安装后运行 /asc:它会告诉你引擎、认证、默认 app 以及下一步该做什么(不经过模型)。
你可以做什么
| 在对话里说 | 插件会做什么 |
| "1.2.3 能提交了吗?
展开完整文档(README 剩余 1 节)
ASC · DeepSeek Harness 的 App Store Connect 操作台
用对话完成 TestFlight 发布、发版体检、反馈分诊与合规巡检。
App Store Connect 是 iOS 发布流程的核心,也是团队最耗时间的地方:命令行参数、大段 JSON、状态机、审批与合规检查。这个插件把它搬进 DeepSeek Harness:安装一次,用自然语言提出需求,Agent 会选对流程、先给出计划,并在真正改动线上之前停下来等你审批。
底层执行引擎仍是 asc CLI(MIT,Go)。本插件是它上层的产品层:5 个任务型作业、按意图组织的读 / 计划 / 变更工具面、随包发布的内置技能,以及负责体检、安装与版本对齐的引擎管理器。
dsh plugin --profile desktop add @sleep9ull/dsh-asc-cli
安装后运行 /asc:它会告诉你引擎、认证、默认 app 以及下一步该做什么(不经过模型)。
你可以做什么
| 在对话里说 | 插件会做什么 |
| "1.2.3 能提交了吗?把阻塞项和修复顺序列出来" | release-check — 跑 asc validate,给出阻塞统计与有序修复步骤 |
| "把这个包发到内部测试组" | ship-testflight — 上传、等待处理、把 build 加入 TestFlight 组 |
| "把 1.2.3 和元数据准备好,先别提交" | stage-release — 校验、挂 build、应用元数据,停在提交之前 |
| "测试员在抱怨什么?" | triage-feedback — TestFlight 反馈 + 崩溃 + 评论,聚合归类 |
| "合规有问题吗?年龄分级、加密、可访问性、定价" | compliance-sweep — 四项只读探测,单项失败不阻断 |
| "其他操作:证书、用户、分析、广告、原始 API" | asc 读取、discover 找命令、run 兜底长尾 |
所有写操作都遵循同一形态:先出计划 → confirm: true → 宿主审批 → 执行 → 可审计结果。
快速开始
1 · 安装插件
dsh plugin --profile desktop add @sleep9ull/dsh-asc-cli
重启或重新加载 profile。插件会向 cordis.patch.yml 插入一行配置(默认 mode: read-only)。
2 · 准备引擎
brew install asc # 或:curl -fsSL https://asccli.sh/install | bash
asc auth login --name "MyApp" --key-id ABC123 --issuer-id DEF456 --private-key /path/to/AuthKey.p8
然后运行 /asc,或让 Agent 执行 asc_setup 的 diagnose。如果还有缺失,它会给出恰好一个下一步。不要把私钥贴进对话;认证始终在你自己的终端完成。
也可以让插件代下载引擎:开启 allowProvision,执行 asc_setup 的 provision。它会下载固定版本的 asc、校验官方 SHA-256,并缓存到 $DSH_HOME/cache/asc-cli/。
3 · 直接提需求
列出我的 app,选 bundle id 为 com.example.focus 的那个,设为默认。
1.2.3 能提交了吗?按优先级给我阻塞项。
把 ./build/Focus.ipa 作为 1.2.3 build 42 传到内部测试组。
第三条会走 ship-testflight 作业;想先看计划就加 dryRun: true,不会触碰 App Store Connect。
插件里有什么
5 个作业
asc_job 是首选入口:一次调用、计划形状的结果、每步摘要,必要时支持 dry-run。
| 作业 | 风险 | 作用 |
| release-check | 只读 | 跑 asc validate,返回阻塞数与有序修复项 |
| ship-testflight | 写 | 上传 .ipa/.pkg(等待处理)→ 取 buildId → 加入 TestFlight 组;可选 beta review |
| stage-release | 写 | 先校验,再准备版本(元数据 + build),不提交 |
| triage-feedback | 只读 | 聚合 TestFlight 反馈、崩溃与评论 |
| compliance-sweep | 只读 | 巡检年龄分级、加密声明、可访问性、当前定价 |
写作业(write)需要 mode: write、confirm: true 和宿主审批。
5 个工具
| 工具 | 定位 | 用途 |
| asc_job | 任务 | 上面 5 个完整工作流 |
| asc | 读 | apps、builds、TestFlight、reviews、离线元数据校验,以及 discover / run |
| asc_plan | 计划 | validate、status、metadata-plan,不改动 App Store Connect |
| asc_apply | 变更 | upload、groups、metadata-init、metadata-apply、stage、publish |
| asc_setup | 环境 | 版本、认证状态、doctor、系统状态、diagnose、provision、安装技能 |
2 个命令
| 命令 | 作用 |
| /asc | 能力卡:引擎状态、认证、默认 app、5 个作业、下一步 |
| /asc-doctor | 完整诊断:二进制与来源、版本与测试范围、认证、默认 app、provision、远端更新 |
命令直接对宿主执行,不产生模型消息。
6 个内置技能
随 npm 包发布,装完即可用——不需要 git、不需要全局技能目录:
dsh-asc-quickstart · dsh-asc-auth · dsh-asc-release-readiness · dsh-asc-testflight-ship · dsh-asc-feedback-triage · dsh-asc-compliance-sweep
覆盖首次使用选择、认证与 CI、发版体检、TestFlight 发布、反馈分诊、合规巡检——全部以本插件的工具语义书写。
引擎管理器
| 环节 | 行为 |
| 定位 | ascPath → ASC_CLI_PATH → 插件缓存 → PATH |
| 诊断 | 版本、测试范围、认证、默认 app、provision 状态,给一个下一步 |
| Provision | 可选:固定 asc 5.16.0、SHA-256 校验、按平台缓存 |
| 更新 | /asc-doctor 对比 GitHub 最新 release(24h 缓存),提示 brew upgrade asc,从不自动升级 |
为什么要做成插件,而不是让 Agent 直接跑 bash?
- 审批而非自证:默认只读;写操作需要显式 confirm 和真人审批,模型无法自己放行。
- 先计划后执行:validate、status、--dry-run 是一等公民,改动前先给你看。
- 结果适合对话:摘要、修复顺序、计数替代大段 JSON;超大结果省略并给出读取路径。
- 作业而非命令堆叠:上传 → 等待 → 分组是一条确定性调用,不是五个可能被模型重排的命令。
- Agent 自带工作流知识:内置技能讲清作业、策略与失败恢复。
- 可审计:可选的 JSONL 审计记录每次调用;审批结论保留在 DSH 会话日志。
安全模型
- 默认只读:每次调用带 --read-only + ASC_READ_ONLY=1,写操作在启动子进程前就被拒绝。
- 写作模式:需要 confirm: true 且默认弹出宿主审批;插件从不自动加 --confirm。
- 未知命令不静默:无法确认只读的命令转人工审批(ask),或按配置直接拒绝(unknownCommands: deny);写模式还额外要求 confirm。
- 本地写需确认 + 审批:metadata init/plan、docs init、doctor --fix、builds dsyms、install-skills。
- 默认关闭值展开:asc 会展开 flag 值里的 @env: / @file:;插件默认把行首 @ 转义,除非显式开启 allowValueExpansion。
- 凭据不进模型:宿主会清洗 KEY 变量,插件因此显式转发 ASC_KEY_ID、ASC_ISSUER_ID、ASC_PRIVATE_KEY_PATH、ASC_PRIVATE_KEY,但从不读取、保存或打印密钥内容。
- 永久拒绝:auth login/logout、web-session 命令、交互式命令。
- 无 shell:argv 数组直传;诊断信息脱敏;默认关闭 telemetry。
- 可选治理:auditLog 记录执行内容;approvedActions 仅在写模式对已知动作跳过提示。
环境要求
| 依赖 | 版本 |
| DeepSeek Harness | 0.2.1-rc.2 线(engines.dsh: >=0.2.1-rc.2 <0.3.0) |
| Node.js | ≥ 22.19(推荐 24) |
| asc | 固定 5.16.0;测试范围 >=5.16.0 <6.0.0(/asc-doctor 会提示漂移) |
| App Store Connect API Key | 团队或个人 key,在 Agent 之外完成认证 |
配置
在 ~/.dsh/profiles/<profile>/cordis.patch.yml 中覆盖 asc-tools 行。patch 是整块替换,需要重述所有用到的键:
- id: asc-tools
name: '@sleep9ull/dsh-asc-cli'
config:
mode: write # 上传 / 提交 / 元数据 apply 需要 requireApproval: true profile: MyApp # 传给 asc --profile defaultAppId: "123456789" allowProvision: true # 可选:允许插件下载固定版本引擎
| 字段 | 默认 | 含义 |
| mode | "read-only" | read-only 或 write |
| requireApproval | true | 写操作是否询问宿主审批 |
| ascPath | "asc" | 可执行文件(PATH 名或绝对路径) |
| profile | — | asc --profile |
| defaultAppId | — | 省略 app 时的默认 App |
| timeoutMs | 60000 | 普通命令超时 |
| longTimeoutMs | 1800000 | 上传与等待发布 |
| maxOutputBytes | 262144 | stdout 超限写入 spill |
| maxDataBytes | 8000 | 超过该 JSON 大小就不回传 data(dataOmitted) |
| workdir | — | 覆盖会话工作目录 |
| allowValueExpansion | false | 允许 asc 的 @env: / @file: 展开 |
| unknownCommands | "ask" | 无法确认只读时:ask 或 deny |
| allowProvision | false | 允许 asc_setup 的 provision |
| cacheDir | — | 覆盖 provision 缓存目录 |
| bypassKeychain | false | 设置 ASC_BYPASS_KEYCHAIN=1(CI / 无头环境) |
| telemetryDisabled | true | 设置 ASC_TELEMETRY_DISABLED=1 |
| auditLog | — | 每次调用追加一行 JSONL 审计 |
| approvedActions | [] | 写模式下跳过审批的 glob 标签 |
| checkUpdates | true | 在 /asc-doctor 显示最新版本 |
| env | {} | 传给 asc 的额外环境变量 |
技能
包内自带 6 个技能,注册在 bundled rank(600)。优先级为:项目 .dsh/skills(100)→ 项目 .agents/skills(200)→ 自定义(300)→ ~/.dsh/skills(400)→ ~/.agents/skills(500)→ bundled(600)。因此你自己安装的同名技能会覆盖内置版本——内置兜底、用户可覆盖。
想额外安装官方 25 个 ASC 技能:
asc install-skills # 写入 ~/.agents/skills,DSH 会读取
DSH 的技能扫描路径是 <项目>/.dsh/skills、<项目>/.agents/skills、customSkillDirs、~/.dsh/skills、~/.agents/skills 和 $DSH_BUNDLED_SKILL_DIR;不扫描 ~/.claude/skills。
从 0.1.3 升级
0.1.4 收敛了工具面,旧工具已移除:
| 0.1.3 | 0.1.4 |
| asc_search | asc 的 discover |
| asc_run | asc 的 run |
| asc_apps list/view | asc 的 apps-list/apps-view |
| asc_builds list/next-number | asc 的 builds-list/builds-next-number |
| asc_builds upload/add-groups | asc_apply 的 upload/groups |
| asc_testflight feedback/crashes/groups | asc 的 testflight-feedback/-crashes/-groups |
| asc_metadata validate | asc 的 metadata-validate |
| asc_metadata init/plan/apply | asc_apply metadata-init;asc_plan metadata-plan;asc_apply metadata-apply |
| asc_release status/validate/stage/publish | asc_plan status/validate;asc_apply stage/publish |
asc_job 与 asc_setup 名称不变;作业新增 compliance-sweep。
常见问题
| 现象 | 处理 |
| /asc 说找不到引擎 | brew install asc,或配置 ascPath,或开启 allowProvision 后执行 asc_setup provision |
| 鉴权失败 / exit 3 | 终端执行 asc auth status --validate;检查 key 在 App Store Connect 的角色 |
| Keychain 卡住 | 先在终端登录一次;或设置 bypassKeychain: true |
| 写操作被拒 | 仍是只读模式:把 asc-tools 行改成 mode: write,再带 confirm: true 重试 |
| 版本漂移提示 | /asc-doctor 会显示已装 / 测试范围 / 最新版本;按提示 brew upgrade asc |
| 结果太大 | dataOmitted 表示数据超过上限:缩小查询或读取 spillPath |
| 未知命令要求审批 | 预期行为;可设 unknownCommands: deny 改为直接拒绝 |
| 安装时 pnpm 报 peer 警告 | 正常:DSH 运行时提供 @deepseek-ai/ peer |
开发
npm install
npm run build # tsc -> lib/
npm run typecheck
npm test # vitest
node scripts/contract.mjs ./vendor/asc # 对真实 asc 跑契约测试
node scripts/smoke.mjs # 编译产物冒烟
把本地构建装进 profile
npm pack && dsh plugin --profile desktop add ./sleep9ull-dsh-asc-cli-.tgz
用本仓库起一个独立开发实例
dsh web --patch ./dev/cordis.patch.yml --no-open --port 3199
vendor/asc 已被 gitignore;契约与冒烟测试需要把真实二进制放在这里。CI 每晚会对上游最新 release 跑一次契约测试。
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
sleep9ull/dsh-asc-cli
用对话完成 TestFlight 发布、发版体检与合规巡检
相关插件 · 市场 / 管理
插件精选列表awesome-dsh-plugin/awesome-dsh-plugin
DeepSeek Harness(dsh)插件精选列表
★ 22,399未汉化DSH
73.6
新词雷达zhuyansen/new-term-radar
new-term-radar新词雷达
★ 2,049已汉化MCP
72.8
插件生态导航0xsline/awesome-deepseek-harness
安装 贡献指南 DeepSeek Docs 公开插件目录 Issues
★ 1,188已汉化DSH
72.6
技能注册中心iflytek/skillhub
企业级开源智能体技能注册中心——发布、发现并管理组织内可复用的技能包。
★ 5,384已汉化DSH
71.9
插件市场目录imsai-sh/awesome-deepseek-harness-plugins
面向 DeepSeek Harnessdsh生态的社区插件目录,共收录 13950 个插件含 PR 收录与…
★ 360已汉化DSH
71.9
插件精选清单Anil-matcha/awesome-dsh-plugin
DeepSeek Harnessdsh精选指南——DeepSeek…
★ 1,013已汉化DSH
71.7
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。