-MackBook Air M1-macOS 11.3-XCode 12.5-react native 0.64.1-node 16.0.0-npm 7.15.1-watchman 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
但是对于模拟器,构建工作正常。
我试图重新安装node_modules,豆荚,看守与酿造。我还创建了文件limited. maxfiles.plist,limited.maxproc.plist到dir /Library/LaunchDaemons/,现在ulimited-a显示进程2000和文件描述符524288。重启计算机并解锁钥匙串。
在我和哈金托什的PC上,我没有这个问题。
此错误是由于mac m1硅的模块fseentsbug。请参阅线程:https://github.com/facebook/metro/issues/668
它通过新版本的watchman得到了修复。通过brew升级您的watchman。删除您的项目并从git下载并重建所有内容以及pod install,然后它应该归档没有问题。
脸谱网的人承认了bug并修复了它
我创建了一个同名的新项目,安装了所有最新的包并复制了代码。只有在那之后,项目才构建成功。