React Native应用通过Xcode无法连接服务器求助
问题:React Native 健康应用在iPhone真机运行时连接失败
我用React Native开发了一款获取Apple Health心率数据的简易应用,尝试通过Xcode在iPhone上运行。已经试过有线、无线两种方式连接iPhone和Mac,确认两台设备在同一Wi-Fi,还重置过Mac和iPhone,但问题依旧。附上错误日志,求有经验的人帮忙,我会及时回复相关问题!
nw_socket_handle_socket_event [C5:1] Socket SO_ERROR [61: Connection refused] nw_endpoint_flow_failed_with_error [C5 10.0.0.34:8097 in_progress socket-flow (satisfied (Path is satisfied), viable, interface: en0[802.11], ipv4, ipv6, dns, uses wifi)] already failing, returning nw_connection_get_connected_socket_block_invoke [C5] Client called nw_connection_get_connected_socket on unconnected nw_connection TCP Conn 0x3013fe760 Failed : error 0:61 [61] nw_connection_copy_connected_local_endpoint_block_invoke [C5] Client called nw_connection_copy_connected_local_endpoint on unconnected nw_connection nw_connection_copy_connected_remote_endpoint_block_invoke [C5] Client called nw_connection_copy_connected_remote_endpoint on unconnected nw_connection Bridgeless mode is enabled Unbalanced calls start/end for tag 20 Unbalanced calls start/end for tag 19 Running "MyHealthApp" with {"rootTag":1,"initialProps":{"concurrentRoot":true},"fabric":true}
可能的解决方法
1. 检查Mac防火墙设置
- 打开「系统设置」→「网络」→「防火墙」,确认未阻止Xcode或node进程的网络连接
- 临时关闭防火墙测试,验证是否能正常连接
2. 排查Metro服务器端口问题
- 错误日志中涉及端口8097,先检查该端口是否被占用:
lsof -i :8097 - 若端口被占用,杀掉对应进程;或修改Metro默认端口,在项目根目录
metro.config.js中添加:module.exports = { server: { port: 8088 // 替换为未被占用的端口 } };
3. 重置Xcode设备连接缓存
- 关闭Xcode和所有模拟器,终端执行:
xcrun simctl shutdown all rm -rf ~/Library/Developer/Xcode/DerivedData rm -rf ~/Library/Caches/com.apple.dt.Xcode - 重新打开Xcode,重新连接设备
4. 检查iPhone端设置
- 进入iPhone「设置」→「通用」→「VPN与设备管理」,确认信任你的开发者账号
- 关闭iPhone上的VPN、代理工具,确保Wi-Fi无代理配置
5. 重新构建项目
- 删除项目
ios/build文件夹,执行:cd ios && pod deintegrate && pod install && cd .. npx react-native clean npx react-native run-ios --device "你的设备名称"
内容的提问来源于stack exchange,提问作者Trigun Soni
相关产品推荐
相关产品推荐

