qq-chat-exporter · macOS 适配
问题
qq-chat-exporter 的 Shell 模式在 macOS 上完全不可用:启动器用 child_process.fork() 重新执行 QQ 二进制并把 napcat.mjs 当作参数传入,这只对未打包的通用 Electron 有效。签名打包的 QQ.app 会忽略多余参数,于是 QQ 正常启动、NapCat 从未加载,启动器无限期挂起,没有任何报错。Linux 上的 LD_PRELOAD 方案也无法移植到 dyld。
修改
- 改为修改 package.json 的 main 指向生成的 loader,让 QQ 自己的 Electron 进程加载 NapCat
- 只作用于包目录下的私有副本 QQNapCatRuntime.app,从不修改用户的 /Applications/QQ.app;副本按 QQ 版本变化自动重建
- ad-hoc 重签名且不带
--deep,保留嵌套 Frameworks 的原始签名(实测原地改真实 QQ.app 会破坏其日常使用)
结果
PR #621(2026-07-28)与修复 NapCat 版本探测静默回退的 PR #625(2026-07-29)已被上游合并,macOS Apple Silicon 用户可直接使用官方发布包。