用途:为现有 Electron 应用交付可验证的增量自动更新链路,以用户实际安装包、公开更新源与安装结果为准,而非仅以 CI 成功为准。
主要能力:在 macOS Sparkle 路径下处理 appcast、DMG、blockmap、delta 更新包、签名与公证;要求生成按架构区分的 feed 条目,并在暂存前校验签名、长度、架构与 URL。支持 delta-only 模式:一旦出现完整包回退即停止,转为提示手动安装,而非静默下载更大归档。如需本地 feed 代理,须绑定 loopback、仅放行已验证的 delta URL、保留 HTTP range,并让产物 URL 以 .delta 结尾。
使用方式(强制流程):先建立更新契约,明确目标平台、包格式、现有更新库、更新源、签名负责人、发布通道与回滚预期,并区分检查、下载/暂存、安装交接、重启后验证四种状态;macOS 相关工作读 references/electron-macos-delta.md,改动发布流水线前读 references/release-verification.md。随后使检查有界可恢复:每个更新服务仅一次进行中检查,通过网络层(含 appcast 请求)传递 AbortSignal,超时后中止请求、等待旧状态收敛再允许重试,并单独配置更新器网络会话,超时或下载失败后 UI 保持可重试。之后执行产物策略、安装与重启协调:交予原生更新器前完成应用清理,异步安装交接确认前保持进程存活,重启后用 release-verification 验证暂存更新与已安装版本;普通用户主动重启且无更新时改用 sgc-electron-app-relaunch。最后验证交付物,补充单次检查、超时中止、陈旧检查恢复、拒绝完整包回退、feed 代理 range、异步安装交接等测试,并运行项目适用的 format、lint、typecheck、test、打包、签名与公证检查,核对公开发布页、appcast 与 delta 资源响应以及最终产物的版本、摘要、大小、签名与公证状态。
适用场景:用户提到增量更新、Sparkle、检查更新、appcast、DMG 更新或 delta updater 时;不适用于只改版本号、更新日志或普通下载页,也不适用于网页热更新、PWA 缓存更新或移动端 OTA。
限制:需具备已定义打包与签名负责人的 Electron 项目;Sparkle 工具仅用于 macOS Sparkle 路径。费用、价格等信息暂未提供。通用反馈闭环要求:修改意见先判定 task-specific 或 reusable,reusable 需先更新对应规范并完成版本、lint 与分发核验,且会使此前确认失效,完成当前修改后停下等待用户指示,不自动发布或提交。