【问题标题】:React Native: XCode: Build failed with error "EMFILE: too many open files, watch"React Native:XCode:构建失败并出现错误“EMFILE:打开的文件太多,请观看”
【发布时间】:2021-08-22 11:57:24
【问题描述】:

– MackBook Air M1 – macOS 11.3 – XCode 12.5 - 反应原生 0.64.1 – 节点 16.0.0 - npm 7.15.1 – 守望者 2021.05.31.00

当我尝试归档项目或为设备构建项目时,Xcode 停止构建并出现错误:

/Users/aptyp/Projects/Proffmylife/Client/node_modules/metro-hermes-compiler/src/emhermesc.js:81
          throw ex;
          ^

Error: EMFILE: too many open files, watch
    at FSEvent.FSWatcher._handle.onchange (node:internal/fs/watchers:204:21)
Emitted 'error' event on NodeWatcher instance at:
    at NodeWatcher.checkedEmitError (/Users/aptyp/Projects/Proffmylife/Client/node_modules/sane/src/node_watcher.js:143:12)
    at FSWatcher.emit (node:events:365:28)
    at FSEvent.FSWatcher._handle.onchange (node:internal/fs/watchers:210:12) {
  errno: -24,
  syscall: 'watch',
  code: 'EMFILE',
  filename: null
}
Command PhaseScriptExecution failed with a nonzero exit code

但是对于模拟器,构建工作正常。

我尝试使用 brew 重新安装 node_modulesPodswatchman。我还创建了文件 limit.maxfiles.plistlimit.maxproc.plist 到目录 /Library/LaunchDaemons/ 和现在 ulimit -a 显示进程 2000文件描述符 524288。重新启动计算机并解锁钥匙串。

在我的装有 Hackintosh 的电脑上我没有这个问题。

【问题讨论】:

  • 您解决了这个问题吗?
  • 是和不是。我创建了一个同名的新项目,安装了所有最新的包并复制了代码。只有在此之后,该项目才构建成功。
  • 我认为这个问题发生在我身上是因为我之前更新了“react-native”包,但严重纠正了“ios”文件夹中的原生平台文件。

标签: reactjs xcode react-native apple-m1


【解决方案1】:

我创建了一个同名的新项目,安装了所有最新的包并复制了代码。只有在此之后,该项目才构建成功。

【讨论】:

    【解决方案2】:

    此错误是由于 mac m1 芯片的 fsevents 模块中的错误造成的。见帖:https://github.com/facebook/metro/issues/668

    新版本的守望者修复了它。通过 brew 升级你的守望者。删除您的项目并从 git 下载,并与 pod install 一起重建所有内容,然后它应该没有问题。

    Facebook guy admitting to the bug and fixing it

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-21
      • 1970-01-01
      • 1970-01-01
      • 2023-02-01
      • 2020-12-08
      • 2018-04-01
      • 1970-01-01
      • 2022-01-03
      相关资源
      最近更新 更多