用途:在 App Store Connect CLI 中实现 lane 式自动化,用仓库内的 .asc/workflow.json 定义多步骤流程,并完成校验、列出、运行、恢复与审计。
主要能力:工作流文件默认位于 .asc/workflow.json,可用 --file 覆盖路径,支持 JSONC 注释。顶层钩子有 before_all、after_all、error;工作流键包括 description、private、env、steps。步骤支持字符串简写、run 执行 shell 命令、workflow 调用子工作流、name 标签、if 条件变量、with 覆盖环境变量、outputs 从命名 run 步骤的 JSON stdout 提取输出、retry 固定延迟重试、timeout 单次尝试超时。输出引用格式为 ${steps.step_name.OUTPUT_NAME},声明输出的步骤需有可安全引用的名称,且仅限 run 步骤;输出会持久化到运行状态,不应映射密钥。
使用方式:先用 asc workflow --help 等确认参数。编写文件后执行 asc workflow validate 校验,asc workflow list 或 --all 发现工作流,asc workflow run --dry-run 预览,再 asc workflow run 执行。失败可用 asc workflow run <name> --resume "<run-id>" 恢复,恢复时不要传额外 KEY:VALUE。运行参数支持 KEY:VALUE 与 KEY=VALUE,重复键后者生效;shell 中通过 $VERSION 等引用。环境优先级:主工作流为 definition.env < workflow.env < CLI 参数;子工作流调用为 sub-workflow env < 调用方 env 与参数 < step with。条件 if 的真值为 1、true、yes、y、on(不区分大小写)。
限制与安全:retry.max_attempts 含首次尝试,取值 2 到 100;延迟与超时须为不超过 24 小时的正时长,仅适用于 run 步骤。无 retry 的 timeout 视为终止;恢复需要成功检查点或启用重试的失败步骤,输出提取失败无法恢复。应把工作流文件当作代码,只运行可信文件,避免在带密钥时运行不可信 PR 的工作流,并保持版本控制;先校验、再 dry-run、最后运行,变更步骤使用明确 ID 与 --confirm。使用 asc validate、asc release stage、asc review submit、asc publish appstore,不要使用已移除的提交命令。