如何解决React Native iOS运行时"Unable to talk to your watchman"报错
解决方案
- 重置Watchman状态,解决socket连接异常
依次执行以下命令:# 杀掉所有正在运行的watchman进程 killall -9 watchman # 删除当前用户的watchman状态目录 rm -rf /usr/local/var/run/watchman/$(whoami)-state # 重置watchman全局状态 watchman watch-del-all watchman shutdown-server - 修复多用户环境下的Homebrew权限冲突
执行以下命令将Homebrew相关目录权限归属到当前用户:
执行完成后重新运行sudo chown -R $(whoami) $(brew --prefix)/*watchman version验证是否能正常输出版本号。 - 临时禁用Watchman验证问题根因
启动Metro服务时添加--no-watchman参数跳过Watchman调用:
启动后再在Xcode中重新构建应用,如果应用可以正常加载,说明问题确实由Watchman兼容问题导致,可将Watchman降级到2021.10.18.00稳定版本使用。npx react-native start --no-watchman - 排查Metro服务连接异常
若禁用Watchman后仍报开发服务连接错误,可在iOS模拟器的Safari中直接访问报错提示的bundle URL,确认是否可以正常访问:- 若无法访问,执行
lsof -i :8081检查8081端口是否被其他进程占用,杀掉占用进程后重新启动Metro即可 - 若端口被占用无法释放,可指定其他端口启动Metro:
npx react-native start --port 8082,同时修改Xcode项目中AppDelegate.m里的bundle URL端口为对应端口即可
- 若无法访问,执行
- 清理项目缓存重新构建
若以上操作都无效,执行以下命令清理所有缓存后重新构建项目:
清理完成后打开Xcode,点击Product -> Clean Build Folder清理构建缓存后再重新运行项目。rm -rf node_modules package-lock.json yarn.lock rm -rf ios/Pods ios/Podfile.lock npm install cd ios && pod install && cd ..
内容的提问来源于stack exchange,提问作者Chris Jarvi
相关产品推荐
相关产品推荐

