App 下载
当前第一阶段只发布 macOS 安装包。手动下载默认走 wfdownload.yuhe.space,自动更新 feed 默认走 wfupdates.yuhe.space;两者仍共用本机7131 静态下载服务。旧的 download.hookcode.win 与 updates.hookcode.win 仅作为兼容入口保留。
数据源:已挂载的 release metadata
- 生成时间:2026-07-03T04:32:49Z
- Metadata 根目录:
/Volumes/store/workflow-code-prod/releases- Workflow Server 健康快照:ok (production)
2026-07-03T04:32:49Z(/health)
当前 App stable 下载已暂停展示。
- stable 仍保留在服务器上用于回滚:v0.1.0
2026-07-01T14:41:06.279Z- 最新测试归档:v0.1.4
2026-07-03T04:31:34.315Z(https://wfdownload.yuhe.space/app/v0.1.4/)- 原因:最新包尚未完成 Apple Developer ID 签名与 notarize,不能作为 stable 自动更新源发布。
本地发布命令
阶段 C 起,App 发布源不经过 GitLab CI。先在当前电脑执行pnpm -C app build:mac,确认 electron-builder 输出目录中存在 latest-mac.yml、dmg、zip 与 *.blockmap,再执行:
finalize 会先写入 app/v<X.Y.Z>/,生成 checksums.txt 与 release.json,更新 releases/index.json,最后再原子切换 app/stable/。
stable 发布前会额外校验 DMG 内的 macOS App:CFBundleIconFile 不能是 Electron 默认的 electron.icns,包内必须带 icon.icns 与运行时品牌 PNG,并且 codesign --verify --deep --strict 与 spctl 都必须通过。没有 Apple Developer ID Application 证书和 notarize 凭据时,只能生成本地测试包,不能发布到 stable;否则用户下载后会被 macOS Gatekeeper 报“已损坏,无法打开”。公开 HTTPS 入口的反代证书也必须覆盖 wfdownload.yuhe.space / wfupdates.yuhe.space。
内部 macOS 测试分发暂时使用 ad-hoc 签名 zip:对 Workflow Code.app 执行 codesign --force --deep --sign - 并通过 codesign --verify --deep --strict 后,用 ditto -c -k --sequesterRsrc --keepParent 打包为 *-mac-test.zip。该 zip 只供内部测试下载,不写入 app/stable,也不作为自动更新 feed。
当前稳定通道
- 当前稳定版:v0.1.0
2026-07-01T14:41:06.279Z - 更新通道:
stable - 手动下载根目录:
https://wfdownload.yuhe.space/app/stable/ - 自动更新 feed:
https://wfupdates.yuhe.space/app/stable/ - Windows:阶段二补齐,当前不提供
exe
稳定版安装包
当前快照里没有对应产物。稳定通道元数据
当前快照里没有对应产物。最新归档版本
- 最新版本:v0.1.4
2026-07-03T04:31:34.315Z - 归档目录:
https://wfdownload.yuhe.space/app/v0.1.4/
最新归档安装包
macOS 内部测试 zip
内部测试 zip 是 ad-hoc 签名包,不是正式发布包。
- 解压后如被 Gatekeeper 拦截,测试机只对该 App 解除 quarantine:
xattr -dr com.apple.quarantine "/Applications/Workflow Code.app"- 然后执行:
open "/Applications/Workflow Code.app"- 发行入口统一使用 HTTPS;如果提示证书域名不匹配,需要先修复服务器证书,而不是切回 HTTP。
- 不建议全局关闭 Gatekeeper;正式公开分发仍需要 Developer ID Application 证书和 notarization。