You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xcode 9出现Bad File descriptor错误求助:求成因与解决办法

解决Xcode 9中"encountered read error on command output pipe (Bad file descriptor)"错误

我之前维护老项目用Xcode 9的时候也踩过这个坑,这个管道读取错误大概率和Xcode缓存、代码拉取后的冲突或者系统资源异常有关,给你整理几个靠谱的解决方向:

可能的原因及对应解决办法

  • Xcode缓存堆积导致管道异常
    这是最常见的诱因,Xcode的Derived Data和缓存文件在版本切换、源码更新后很容易出现损坏,直接导致命令执行时管道读取失败。
    解决步骤:

    1. 完全关闭Xcode
    2. 打开终端,执行清理Derived Data的命令:rm -rf ~/Library/Developer/Xcode/DerivedData
    3. 顺带清理Xcode的全局缓存:rm -rf ~/Library/Caches/com.apple.dt.Xcode
    4. 重新打开Xcode,拉取最新源码后再尝试构建
  • Git拉取后的文件权限或冲突问题
    拉取新代码时,如果本地有未提交的修改、或者文件权限被系统篡改,会导致Xcode读取文件时触发管道错误。
    解决步骤:

    1. 先在项目根目录执行git status检查本地修改,建议先通过git stash暂存或者提交修改
    2. 如果确定不需要本地修改,可以执行git reset --hard HEAD重置代码到最新拉取的版本(注意:这个操作会丢弃所有未提交修改,谨慎操作)
    3. 修复文件权限:在项目根目录执行sudo chmod -R 755 .,确保Xcode有足够权限读取项目文件
  • 系统管道资源被占用耗尽
    有时候后台的其他进程会占用大量系统管道资源,导致Xcode无法正常创建或读取管道。
    解决步骤:

    1. 关闭所有不必要的后台进程,比如其他开发工具、终端中长时间运行的脚本等
    2. 直接重启Mac,重置系统的资源占用状态后再打开Xcode尝试
  • Xcode 9版本本身的bug
    Xcode 9作为比较老旧的版本,本身存在一些管道相关的已知bug,尤其是在配合较新的macOS版本(比如Mojave及以上)使用时更容易触发。
    解决步骤:

    1. 尝试更新Xcode到9.x系列的最新补丁版本(如果还能获取到官方安装包的话)
    2. 暂时关闭并行编译:在项目的Build Settings中找到Parallelize Build选项并取消勾选,减少同时执行的编译命令数量,降低管道压力

内容的提问来源于stack exchange,提问作者philm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:38:59