You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

React Native iOS开发构建无法连接Metro bundler问题排查求助

React Native iOS开发构建无法连接Metro bundler问题排查求助

Hey,我之前也踩过类似的坑,结合你用的RN 0.73.8和Xcode 16.2版本,给你整理几个实操性强的排查方向,你可以挨个试:

  • 先确认Metro是否正常运行:有时候可能Metro没启动或者悄悄挂了,回到项目根目录重新跑npx react-native start,盯着终端看有没有输出类似“Metro waiting on exp://localhost:8081”的启动成功提示,确保它一直在运行状态。

  • 排查网络连通性

    • 如果用模拟器,默认应该能访问localhost,但如果是真机,务必保证手机和电脑连同一个WiFi;
    • 要是localhost解析有问题,试试把localhost换成电脑的实际IP:
      1. 启动Metro时指定IP:npx react-native start --host 你的电脑本地IP
      2. 在iOS设备上打开开发者菜单(模拟器按Cmd+D,真机摇一摇),选择「Change Bundle Location」,输入http://你的电脑IP:8081/index.bundle?platform=ios&dev=true&minify=false
      3. 另外可以在Xcode的Info.plist里临时添加网络权限:新增NSAppTransportSecurity字典,里面加NSAllowsArbitraryLoads并设为YES(仅限开发环境用,上线记得删掉)。
  • 清理全链路缓存:RN的缓存经常搞小动作,按顺序跑这些命令清一遍:

    npx react-native clean
    cd ios && pod deintegrate && pod install && cd ..
    

    清完后重启Metro、重启Xcode,再重新构建项目。

  • 检查Xcode的构建配置

    • 确保当前Scheme是Debug模式,Release模式默认不会连接Metro;
    • 到Xcode的「Build Settings」里搜索「Debug Information Format」,Debug模式下要设为「DWARF with dSYM File」,避免构建时的异常阻断连接。
  • 排查端口占用:8081端口可能被其他程序占了,用下面的命令查进程并杀掉:

    lsof -i :8081
    kill -9 查到的进程ID
    

    或者直接换个端口启动Metro:npx react-native start --port 8082,然后在iOS开发者菜单里切换对应端口。

  • 适配RN 0.73.x与Xcode 16的兼容性

    • 先更新CocoaPods到最新版本:sudo gem install cocoapods,然后重新执行pod install
    • 检查Xcode的「Signing & Capabilities」,确保开发者账号配置正确,签名异常有时候会间接导致Metro连接失败。

如果以上方法都试过还不行,建议看看Metro终端的报错日志,或者Xcode控制台的输出信息,把具体错误内容贴出来,能更精准地定位问题~

内容来源于stack exchange

火山引擎 最新活动