USB连接物理iOS设备时Flutter无法连接Dart VM服务(SocketException: errno = 65)的原因排查与解决求助
大家好,我最近在开发Flutter跨平台应用时遇到了一个棘手的问题,折腾好几天都没搞定,特意来求助各位大佬!
问题描述
我用Mac(Sequoia 15.5)上的VS Code开发Flutter应用,同时支持iOS和Android,之前一切运行正常,但一周前开始,只有物理iOS设备(iPhone 13,iOS 18.5)会报Dart VM连接失败的错误,iOS模拟器完全没问题。
具体的错误提示如下:
Error: Flutter could not connect to the Dart VM service. Please ensure your IDE or terminal app has permission to access devices on the local network. This allows Flutter to connect to the Dart VM. You can grant this permission in System Settings > Privacy & Security > Local Network.
SocketException: Send failed (OS Error: No route to host, errno = 65), address = 0.0.0.0, port = 5353
几个关键的前提信息:
- 我是通过USB有线连接设备,没有使用无线调试
flutter devices命令和Xcode都能正常识别到我的iPhone 13- 设备本身连接正常,Xcode可以对设备进行常规操作
已尝试的排查修复操作
我已经试过了网上能找到的大部分常见方案,但问题依然存在:
- 多次重启Mac和iPhone
- 卸载了之前安装的卡巴斯基杀毒软件
- 关闭了Mac系统防火墙
- 确认VS Code和终端在Mac的「系统设置-隐私与安全性-本地网络」中都已获取访问权限,同时也检查了iPhone端的对应权限设置
- 运行
flutter doctor -v,所有检查项全部通过
环境配置信息
- macOS: 15.5
- iPhone 13: iOS 18.5
- Flutter: 3.32.4
- Dart: 3.8.1
- Xcode: 16.4
- Visual Studio Code: 2.0.x
想请教各位,为什么通过USB连接物理iOS设备时会出现这个Dart VM连接失败的问题?有没有针对性的解决办法?
内容来源于stack exchange

