Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

[bug] bl update: darwin-arm64 binary ships invalid ad-hoc signature, killed by macOS (Killed: 9)

未关闭 适合新手
#223 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
65/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
活跃
技术栈
cli, macos, nodejs, typescript
领域
cli, release

调研方向

该问题与 darwin-arm64 二进制文件的无效临时签名有关。首先检查 CI/CD 发布管道(可能在 .github/workflows 中),以了解二进制文件的构建和签名方式。查找创建 macOS 产物的步骤。修复方法是确保在修改后使用 codesign --force --sign - 正确签名二进制文件。通过构建本地二进制文件并验证其在 macOS Apple Silicon 上运行来进行测试。

由索引模型根据 Issue 内容生成。

描述

Environment

  • CLI: bl 2.0.1(binary 布局 ~/.local/share/bailian-cli/versions/2.0.1/bl)
  • Skill: 2.0.1
  • Node: v22.23.1(npm 渠道副本;二进制渠道不依赖 Node)
  • OS: macOS 27.0 (26A428), Apple Silicon (arm64)
  • Region: cn

Reproduce

  1. 环境原有 npm 安装的 bl 1.28.0(工作正常)

  2. 运行 bl update → 更新到 2.0.1 二进制布局(~/.local/bin/bl → versions/2.0.1/bl)

  3. 运行 bl --version

    zsh: killed     bl --version
    # exit 137 (SIGKILL)
    
  4. 签名校验:

    $ codesign -v .../versions/2.0.1/bl
    ...: invalid signature (code or signature have been modified)
    In architecture: arm64
    
    $ codesign -dvv .../versions/2.0.1/bl
    CodeDirectory v=20400 size=492094 flags=0x20002(adhoc,linker-signed)
    Signature=adhoc
    Identifier=a.out
    

Expected

官方 darwin-arm64 二进制应带有效签名,bl update 后可直接运行。

Actual

二进制自带 ad-hoc(linker-signed)签名无效,Apple Silicon 内核强制签名校验直接 SIGKILL,无法启动。

已排除下载损坏/篡改

  • 从 CDN 重新下载 v2.0.1 zip,sha256 与 manifest.json 的 assets.darwin-arm64.sha256 一致
  • 解压后二进制 sha256 与 bl update 安装到本地的完全一致(tar.gz 通道亦同)
  • 即官方 artifact 本身签名即无效,非网络损坏或篡改;文件无 com.apple.quarantine 属性,与 Gatekeeper 隔离无关

Workaround

codesign --force --sign - ~/.local/share/bailian-cli/versions/<ver>/bl

本地 ad-hoc 重签后 bl --version 正常输出 bl 2.0.1

Notes

  • Frequency: always(2.0.1 darwin-arm64 必现)
  • Invoked via: terminal / agent
  • 推测发布流水线在 link 后修改了二进制未重签;建议发布前 codesign --force --sign - 或 CI 中加签名校验
主要语言
TypeScript
星标
333
派生
28
平均合并
1 天 8 小时
30 天内合并 PR
38

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

modelstudioai/cli 的其他 Issue

查看 modelstudioai/cli 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。