错误: 在 macOS Apple Silicon (M4) 上出现"zsh: killed", 这是因为编译好的二进制文件中有损坏的 Mach-O 签名
操作系统: macOS 15.7.4 CPU 架构: Apple Silicon M4 安装方法: 快速安装脚本 成功通过快速安装说明安装项目后,运行 CLI 会立即崩溃: zsh: killed free-code /login 使用 file 命令检查底层的 cli-dev 文件时,它正确显示为本机可执行文件: Mach-O 64 位可执行文件 arm64。但是,当尝试手动应用临时签名以绕过 Gatekeeper (codesign --force --deep -s - cli-dev) 时,内置的 codesign 工具拒绝了该文件: cli-dev: 签名的格式无效或不受支持。 根本原因分析 似乎使用 bun build --compile 将 CLI 包装进去会导致现代 Apple Silicon 架构上的 Mach-O 二进制头文件/代码签名布局出现结构性损坏。由于 macOS 内核严格执行代码签名,它会看到格式不正确的签名布局并立即以 SIGKILL 终止进程。文件结构损坏得如此严重,以至于标准签名工具拒绝对其进行操作。 暂时的解决方法 对在 M 系列 Mac 上遇到此问题的人来说,可以完全绕过编译好的二进制文件,并使用 bun 直接执行源文件。 删除损坏的二进制文件,并创建包含以下内容的脚本文件 ~/free-code/cli.sh: #!/bin/bash cd ~/free-code exec bun run ./src/entrypoints/cli.tsx "$@" 然后使其可执行并重新链接: chmod +x ~/free-code/cli.sh ln -s ~/free-code/cli.sh ~/free-code/cli-dev
内容来源: freecodexyz/free-code