- otool -L 对 dylib 会先打印它自己的 install name(不是依赖), 之前脚本把它当依赖去 install_name_tool -change,改不动,所以一直报 「还有 20 个 Homebrew 依赖没处理」 - 现在先用 otool -D 读出 install name,用 -id 改成包内路径, 再处理真正的 /opt/homebrew 依赖;@rpath / 系统库直接跳过
- Windows:Git Bash 的 /usr/bin/link.exe 会先于 MSVC 的 link.exe 被 nmake 找到, 把 cl.exe 所在目录放到 PATH 最前面;同时给 MSVC 加 /utf-8, 修掉 C4566 和潜在的中文串码 - macOS:macdeployqt 之后删掉 virtualkeyboard / platforminputcontexts / printsupport / iconengines / imageformats / tls / bearer 这些用不到的插件, 它们会把 /opt/homebrew 的一堆 dylib 拖进来 - bundle-libs.sh:改写失败不再静默吞掉,检查时跳过 otool 的文件名行, 失败时打印「文件 <- 依赖」方便定位
- 工作流改名 .github/workflows/packages.yml,新增 Windows 和两个 macOS job - Windows:windeployqt 收运行库,NSIS 按当前用户装到 LOCALAPPDATA(免管理员), 关联 .md、「打开方式」注册、开始菜单/桌面快捷方式、卸载项,另出便携 zip; 安装包未签名 - macOS arm64:Homebrew Qt 5(原生 arm64,不依赖 Rosetta),macdeployqt 后把 Homebrew 的 libpng/freetype 等依赖收进 app,再 ad-hoc 签名、打 dmg - macOS x86_64:Qt 5.15.2 官方二进制 + macos-15-intel runner,同样签名打 dmg - Release 汇总所有平台产物并生成 SHA256SUMS;某个平台失败不影响其它平台 - README 写清三平台产物、未签名打开方式、.md 关联和发版方式