生成Sparkle应用更新源Skill generate-sparkle-appcast

这是一个用于macOS应用Mos的自动化发布工具。其主要功能是生成Sparkle框架所需的appcast.xml更新源文件,并同步创建中英文双语发布说明页面。该技能自动化处理应用公证、版本签名、变更日志生成和文件托管同步,是软件持续交付和版本发布流程中的关键环节。关键词:Sparkle更新,macOS应用发布,自动化部署,版本管理,持续交付,软件更新,发布说明。

DevOps 0 次安装 0 次浏览 更新于 3/3/2026

名称: 生成Sparkle应用更新源 描述: 从最新构建的zip文件和最近的git变更(自指定提交以来)生成Mos Sparkle的appcast.xml,然后同步到docs/目录以供发布。

当用户想要发布新的Mos版本(稳定版或测试版)并需要以下内容时,请使用此技能:

  • build/目录中已公证的.zip文件生成Sparkle appcast.xml
  • 两个托管的发布说明页面(中文 + 英文)
  • Sparkle为所有zh*区域设置(简体/繁体/香港/台湾)显示中文,为其他所有区域设置显示英文

输入

  • --since <提交>:上一个发布版本的提交(不包含)。用于生成自该提交以来的变更记录作为发布说明。
  • build/目录中已公证并压缩的应用,命名为:
    • Mos.Versions.<版本号>-<YYYYMMDD>.<编号>.zip(稳定版)
    • Mos.Versions.<版本号>-beta-<YYYYMMDD>.<编号>.zip(测试版)
  • Sparkle Ed25519私钥位于sparkle_private_key.txt(被git忽略)。
  • 可选环境变量:
    • RELEASE_NOTES_BASE_URL(默认https://mos.caldis.me/release-notes
    • RELEASE_NOTES_ZH_FILE / RELEASE_NOTES_EN_FILE 指向预先写好的HTML文件(否则脚本会写入build/release-notes/<标签>.*.html

操作步骤

  1. 运行技能脚本:
    • bash .codex/skills/generate-sparkle-appcast/scripts/generate_appcast.sh --since <提交>
  2. 确认输出:
    • build/appcast.xml(已生成)
    • docs/appcast.xml(已复制,用于mos.caldis.me/appcast.xml
    • build/release-notes/<标签>.zh.html + build/release-notes/<标签>.en.html(已生成)
    • docs/release-notes/<标签>.zh.html + docs/release-notes/<标签>.en.html(已复制,用于托管)
  3. 确保GitHub Release的标签和资产名称与生成的appcast中的URL匹配。

注意事项

  • 脚本会生成两个<sparkle:releaseNotesLink>条目:xml:lang="zh"指向中文页面,默认链接指向英文页面。
  • 您可以在运行脚本之前预先创建/编辑build/release-notes/<标签>.zh.htmlbuild/release-notes/<标签>.en.html;如果存在,脚本将重用它们,否则它会根据git历史生成一个默认模板。
  • 如果zip文件以任何方式发生更改(重新打包/重新签名),您必须重新运行脚本以重新生成sparkle:edSignature