名称: 生成Sparkle应用更新源 描述: 从最新构建的zip文件和最近的git变更(自指定提交以来)生成Mos Sparkle的appcast.xml,然后同步到docs/目录以供发布。
当用户想要发布新的Mos版本(稳定版或测试版)并需要以下内容时,请使用此技能:
- 从
build/目录中已公证的.zip文件生成Sparkleappcast.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)
操作步骤
- 运行技能脚本:
bash .codex/skills/generate-sparkle-appcast/scripts/generate_appcast.sh --since <提交>
- 确认输出:
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(已复制,用于托管)
- 确保GitHub Release的标签和资产名称与生成的appcast中的URL匹配。
注意事项
- 脚本会生成两个
<sparkle:releaseNotesLink>条目:xml:lang="zh"指向中文页面,默认链接指向英文页面。 - 您可以在运行脚本之前预先创建/编辑
build/release-notes/<标签>.zh.html和build/release-notes/<标签>.en.html;如果存在,脚本将重用它们,否则它会根据git历史生成一个默认模板。 - 如果zip文件以任何方式发生更改(重新打包/重新签名),您必须重新运行脚本以重新生成
sparkle:edSignature。