Skip to content

[0520] macOS arm64 Velopack 打包 CD 接入 - #4451

Open
MoonL79 wants to merge 16 commits into
mainfrom
cms/0520/macos_velopack_cd
Open

[0520] macOS arm64 Velopack 打包 CD 接入#4451
MoonL79 wants to merge 16 commits into
mainfrom
cms/0520/macos_velopack_cd

Conversation

@MoonL79

@MoonL79 MoonL79 commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

概述

macOS arm64 接入与 Windows 相同的 Velopack 发布/更新链路(两个任务,0520 基于 0519):

0519:运行时 + 本地打包

  • vendor macOS velopack libc dylib(universal,install id 重写 + ad-hoc 重签,前置任务单独提交)
  • xmake/C++ 集成:USE_PLUGIN_VELOPACK 扩到 macOS arm64,启动钩子/更新器后端/feed 平台段(osx-arm64)放开平台 guard;dylib 以 shared target 机制同时落位裸二进制(dev/CI 测试)与 .app/Contents/Frameworks(打包)
  • stage_velopack.lua/pack_velopack.lua 增加 macOS 分支:ditto 拷贝保 framework 符号链接、自产 Info.plist、vpk --runtime osx-arm64、签名参数 VPK_SIGN_* 透传、产物改名;brew dotnet 自动注入 DOTNET_ROOT
  • 验证:scheme 全套 1152 断言 0 挂;本地产出 pkg/zip/nupkg/feed;delta 链可用(详见 devel/0519.md)

0520:CD 接入(对齐 Windows CD)

  • 重写 cd_on_macos_arm64.yml:移除旧 DMG 流程(goldfish/package.scm),改为 vpk 打包——基线拉取、beta/stable 双通道、归档 zip mogan-release-<ver>-osx-arm64-<channel>.zip、CI 内完成 Developer ID 签名 + 公证(复用 APPLE_* secrets)
  • Windows CD 基线匹配加 win-x64 平台段(修复跨平台误抓缺陷)
  • 测试期注释 Debian13/Fedora CD 的 tag 触发(恢复时取消注释)

测试计划(本 PR 内打测试 tag)

  1. v2026.4.0(无 rc)→ 双渠道包
  2. v2026.4.1-rc.1(> 上一步)→ 仅 beta,基线取步骤 1 的 beta
  3. v2026.4.1(> 前两步)→ 双渠道;stable 基线取步骤 1 的 stable(跳过 rc release),beta 基线取步骤 2 的 beta

🤖 Generated with Claude Code

MoonL79 and others added 16 commits August 27, 2026 17:52
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
mac CD 向同一 release 上传 osx-arm64 归档后,原 *beta*.zip 等模式会跨平台
误抓基线(full nupkg 平台专属)。通道 zip 与旧合并 zip 回退均限定 win-x64。

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
公证判 Invalid 的两个原因:xmake 安装 stem 时把 shared 依赖额外装进
Contents/Resources/lib(vpk 的 --deep 签不到),以及 Resources 里的裸
Mach-O(goldfish)对 codesign --deep 不可见。前者在 after_install 清理
(与重复二进制清理同模式),后者在 stage 用正式身份预签(.dSYM 按旧
DMG 流程先例不签)。

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
@MoonL79

MoonL79 commented Aug 28, 2026

Copy link
Copy Markdown
Contributor Author

CD 三轮 tag 实测结果(全部通过 ✅)

测试序列 v2026.4.0v2026.4.1-rc.1v2026.4.1,Windows 与 macOS CD 同跑同 tag:

轮次 tag 断言 结果
1 v2026.4.0(无 rc) 双渠道产出 ✅ 4 归档(win/mac × beta/stable);win 基线取 2026.3.2 真实 release;mac 首发无基线只出 full
2 v2026.4.1-rc.1(rc) 仅 beta + 轮 1 beta 基线 ✅ 仅 beta 归档;基线 Mogan-2026.4.0-beta-full.nupkg;delta 生成
3 v2026.4.1(无 rc) 双渠道 + 基线穿越 ✅ 4 归档;stable 基线 Mogan-2026.4.0-stable-full.nupkg(跳过 rc release);beta 基线 Mogan-2026.4.1-rc.1-beta-full.nupkg

mac 侧签名链路实测通过:Developer ID 深签 → 公证 Accepted(beta/stable 各一次)→ staple → spctl 校验。

测试中修复的三处(详见 devel/0520.md):

  1. setup-dotnet 装 .NET 10(vpk apphost 需要 net10.0,runner 镜像自带版本过旧)
  2. 清理 xmake 安装到 Resources/lib 的错位 velopack dylib(公证 Invalid 根因之一)
  3. stage 预签 Resources 裸 Mach-O(goldfish,codesign --deep 盲区)

⚠️ 合并前需决策:测试 release+tag 是否删除(影响后续正式版本基线链);分支 vars.lua 为测试版本 2026.4.1;Debian13/Fedora CD 的 tag 触发已注释(正式发版前恢复)。

🤖 Generated with Claude Code

@MoonL79 MoonL79 changed the title [0519][0520] macOS arm64 Velopack 打包、自动更新与 CD 接入 [0520] macOS arm64 Velopack 打包、自动更新与 CD 接入 Aug 28, 2026
@MoonL79 MoonL79 changed the title [0520] macOS arm64 Velopack 打包、自动更新与 CD 接入 [0520] macOS arm64 Velopack 打包 CD 接入 Aug 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant