发布与更新
imux 通过网站托管的 macOS 发布链路分发。应用本体、Sparkle 更新源、发布清单和远程辅助清单都统一从 iccjk.com 提供,这样用户和运维都只有一个稳定真相源。
用户更新路径
- 用户只需要从 iccjk.com 托管的 DMG 安装一次 imux。
- 应用启动时以及之后每小时,Sparkle 会检查网站上的稳定版 appcast。
- 一旦发布新版本,imux 会在应用内展示更新状态,用户也仍然可以从应用菜单手动检查。
- Sparkle 会从网站托管的最新下载地址获取 DMG,并把升级流程交还给用户确认。
公开地址
下面这些就是稳定通道当前使用的公开发布地址和控制地址。
https://www.iccjk.com/downloads/imux-v2.4.1-macos.dmg
https://www.iccjk.com/downloads/archive/v2.4.1/imux-v2.4.1-macos.dmg
https://www.iccjk.com/downloads/appcast.xml
https://www.iccjk.com/downloads/latest.json
https://www.iccjk.com/downloads/remote/iccd-remote-manifest.json当前稳定版本
当前稳定线是 v2.4.1。Sparkle build 176 已通过网站 appcast 和 latest manifest 发布。macOS DMG 大小为 44671781 字节,并且必须匹配下方 SHA256。
version: v2.4.1
build: 176
dmg: imux-v2.4.1-macos.dmg
sha256: 8a967c07eb9a4602eb777b97ea32018edc823833ae3e5214116e502fc141ecd5运维发布路径
- 为目标版本构建 macOS 应用,并使用 Developer ID Application 证书签名。
- 先向 Apple 提交应用公证并回贴,再创建对外发布的 DMG。
- 对 DMG 进行签名和公证,确保 Gatekeeper 与官网分发链路一致。
- 使用与该 DMG 匹配的 Sparkle 私钥生成 appcast.xml。
- 把 DMG、appcast、latest.json、归档副本和远程辅助清单一起放入 web/public/downloads。
- 部署网站,让下载地址、appcast 和 manifest 始终指向同一个发布状态。
产物布局
downloads/imux-v2.4.1-macos.dmg
downloads/icc-macos.dmg
downloads/appcast.xml
downloads/latest.json
downloads/archive/v2.4.1/imux-v2.4.1-macos.dmg
downloads/archive/v2.4.1/appcast.xml
downloads/remote/iccd-remote-manifest.json控制文件
这些文件定义了后续升级的规范地址和发布阶段规则。
scripts/release-config.sh
docs/release-update-rules.md
scripts/stage-website-release-assets.sh手动验收
部署完成后,运维可以用这些简单命令确认线上发布链路是否一致。
curl -I https://www.iccjk.com/downloads/imux-v2.4.1-macos.dmg
curl https://www.iccjk.com/downloads/appcast.xml
curl https://www.iccjk.com/downloads/latest.jsonv2.4.1 也加固了本地发布打包流程,加入有边界的 codesign timestamp 重试。运维仍应把已签名产物视为不可变:常规重发应该发布新 tag,而不是覆盖已公证安装包。
imux 当前只发布真实可安装的 macOS 桌面版本。Windows 桌面安装包尚未发布,因为这个代码库目前仍然是原生 macOS AppKit 目标。