SuperAPI AI 工具集

macos-release

通用与其它

查看项目

更新于 10-15 21:41

技能介绍

用途:该技能覆盖原生 macOS 应用在 Mac App Store 之外通过 GitHub Releases 分发并支持 Sparkle 自动更新的完整发布流程。

主要能力与流程:版本号升级 → Archive → 公证与导出 → 创建 DMG → 用 Sparkle 的 sign_update 对 DMG 做 EdDSA 签名 → 更新 appcast.xml → 提交推送 appcast → 创建 GitHub Release。

依赖工具:create-dmg(brew install create-dmg)、gh(brew install gh)、git,以及 Sparkle 构建时生成的 sign_update。可先定位:find ~/Library/Developer/Xcode/DerivedData -name "sign_update" -type f 2>/dev/null | head -1

关键步骤:在 Xcode 更新 MARKETING_VERSION 与 CURRENT_PROJECT_VERSION;Archives 中选择 Distribute App 做 Direct Distribution/Developer ID 并等待公证;用 create-dmg 生成 DMG;执行 sign_update 得到 sparkle:edSignature 与 length;在 appcast.xml 顶部添加新 item(含 sparkle:version、shortVersionString、minimumSystemVersion、enclosure 等);提交推送后执行 gh release create 上传 DMG 并附发布说明。

自动化:仓库提供 Go CLI,可一次性执行 DMG 创建到 GitHub Release。项目根目录需 release.json,仅 app_name 与 github_repo 必填,其余字段(bundle_name、dmg_name、git_branch、min_system_version、appcast_file、derived_data_prefixes)有默认值。运行:go run github.com/fayazara/macos-app-skills/release/cli@latest 或 go run ./release/cli。CLI 为交互式,需在可交互终端运行。

限制与常见问题:sign_update 未找到需先在 Xcode 构建;gh 需 gh auth login;构建号重复需先升级 CURRENT_PROJECT_VERSION;公证失败需检查签名身份、entitlements 与 hardened runtime;App 不更新需确认 SUFeedURL 指向原始 appcast URL 而非 GitHub 页面。appcast 可托管为 GitHub 仓库中的 raw 地址。具体价格、收费与平台兼容性资料暂未提供。