现象
用 build-app 打包一个普通 glaze 应用(Racket 9.3 CS,官方发行版与 Homebrew 版均复现),产出的 App.app/Contents/MacOS/<name> 任何参数都立即 exit 0,程序体(module+ main)完全没有执行:
--version(应在 stdout 打印版本)→ 无输出,exit 0
--bogus-flag(command-line 应报 usage 并 exit 非 0)→ 无输出,exit 0
- 入口第一行写文件日志 → 文件不产生
同一入口 raco exe 出的裸 launcher 与 raco distribute 出的扁平布局(bin/+lib/)都完全正常。
复现
raco exe -o dist-test/app main.rkt # ✓ 可运行
raco distribute dist-test/d dist-test/app # ✓ 可运行
# build-app 的 assemble-macos-bundle 之后 # ✗ 任何输入 exit 0
完整上下文(真实项目):https://github.com/turinglambdaai/gptp-studio —— scripts/package-macos.sh 里的手工组装路线可作 workaround(把 distribute 的 bin/+lib/ 直拷进 Contents/{MacOS,lib} + 手写 Info.plist,实测可用)。
猜测方向
assemble-macos-bundle 对 launcher 的 Mach-O 改写/rpath 处理,或 wrapper entry 与移动后 lib 布局的耦合(exts/ert 路径)。症状是"加载成功但入口没跑",更像生成的 entry 或 bytecode 根路径在移动后解析到空集。
环境
- macOS 15 (arm64)、Racket 9.3 CS(官方 aarch64 发行版 + Homebrew 均复现)
- glaze main
现象
用 build-app 打包一个普通 glaze 应用(Racket 9.3 CS,官方发行版与 Homebrew 版均复现),产出的
App.app/Contents/MacOS/<name>任何参数都立即 exit 0,程序体(module+ main)完全没有执行:--version(应在 stdout 打印版本)→ 无输出,exit 0--bogus-flag(command-line 应报 usage 并 exit 非 0)→ 无输出,exit 0同一入口
raco exe出的裸 launcher 与raco distribute出的扁平布局(bin/+lib/)都完全正常。复现
完整上下文(真实项目):https://github.com/turinglambdaai/gptp-studio —— scripts/package-macos.sh 里的手工组装路线可作 workaround(把 distribute 的 bin/+lib/ 直拷进 Contents/{MacOS,lib} + 手写 Info.plist,实测可用)。
猜测方向
assemble-macos-bundle 对 launcher 的 Mach-O 改写/rpath 处理,或 wrapper entry 与移动后 lib 布局的耦合(exts/ert 路径)。症状是"加载成功但入口没跑",更像生成的 entry 或 bytecode 根路径在移动后解析到空集。
环境