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

React Native CLI真机USB连接失败:No bundle URL present问题求助

React Native iOS真机无法连接Metro问题排查与解决

问题详情

一周前周一前运行正常,周五还能正常使用,周一突发问题且无代码/配置改动,仅在真实iOS设备(两台测试设备)出现:

  1. VS Code构建后,需手动点击设备APP才能启动(不会自动打开),设备弹出错误提示(截图:设备错误提示);
  2. Xcode构建时抛出网络连接错误:

Task <5317CDF5-7FFB-4037-860C-287CC6D11B37>.<1> finished with error [-1004] Error Domain=NSURLErrorDomain Code=-1004 "Could not connect to the server." UserInfo={_kCFStreamErrorCodeKey=61, NSUnderlyingError=0x302fcd500 {Error Domain=kCFErrorDomainCFNetwork Code=-1004 "(null)" UserInfo={_NSURLErrorNWPathKey=satisfied (Path is satisfied), interface: lo0, _kCFStreamErrorCodeKey=61, _kCFStreamErrorDomainKey=1}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <5317CDF5-7FFB-4037-860C-287CC6D11B37>.<1>, _NSURLErrorRelatedURLSessionTaskErrorKey=( "LocalDataTask <5317CDF5-7FFB-4037-860C-287CC6D11B37>.<1>" ), NSLocalizedDescription=Could not connect to the server., NSErrorFailingURLStringKey=http://localhost:8081/status, NSErrorFailingURLKey=http://localhost:8081/status, _kCFStreamErrorDomainKey=1}

Metro执行刷新时提示:

No apps connected. Sending "reload" to all React Native apps failed. Make sure your app is running in the simulator or on a phone connected via USB.

环境版本

react-native: 0.75.4
iOS设备系统: 18.1.1
Mac设备: M2 Air,macOS 15.1.1

已尝试的无效方案

  • Mac与设备同WiFi+USB连接;
  • 开发菜单手动输入Mac局域网IP(No bundle URL提示消失,但热刷新仍失效);
  • 验证设备端localhost、Mac端http://localhost:8081/status均显示Metro运行正常;
  • 删除DeliveryData、Pods、node_modules、org.swift.swiftpm包内容、build文件夹后重装重建;
  • 关闭重启Metro服务器;
  • 重启Mac与iOS设备;
  • 更换第三方热点连接Mac与设备;
  • 配置Info.plist如下(无效):
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <false/>
    <key>NSAllowsLocalNetworking</key>
    <true/>
</dict>
  • 手动生成main.jsbundle(No bundle URL错误消失,热刷新仍失效);
  • Mac与iOS设备切换为Google DNS(8.8.8.8/8.8.4.4);
  • 更新Apple许可证并执行sudo xcodebuild -license;
  • 关闭Mac与iOS设备的私有WiFi地址;

新增解决建议

  1. 检查Mac防火墙权限
    • 打开「系统设置」-「网络」-「防火墙」,确认允许node、react-native进程接收传入连接;临时关闭防火墙测试是否恢复正常。
  2. 指定Metro绑定的IP与端口
    • 启动Metro时显式绑定Mac局域网IP:npx react-native start --host 你的Mac局域网IP --port 8081,之后重新构建应用。
  3. 重置iOS网络设置
    • iOS设备进入「设置」-「通用」-「传输或还原iPhone」-「还原」-「还原网络设置」,重置后重新连接WiFi测试。
  4. 排查端口占用
    • 执行lsof -i :8081查看8081端口是否被其他进程占用,若有则杀掉对应进程:kill -9 进程PID,再重启Metro。
  5. 修改Info.plist添加IP例外
    • 在NSAppTransportSecurity中添加Mac局域网IP的例外规则:
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <false/>
    <key>NSAllowsLocalNetworking</key>
    <true/>
    <key>NSExceptionDomains</key>
    <dict>
        <key>你的Mac局域网IP</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
</dict>
  1. 强制USB连接构建
    • 使用命令npx react-native run-ios --device "你的设备名称" --port 8081,强制通过USB通道构建并连接Metro。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 21:35:19