ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

【错误记录】Flutter 进行 iOS 真机调试报错处理 ( ! Error: Browsing on the local area network for iPhone. Ensure the )

【错误记录】Flutter 进行 iOS 真机调试报错处理 ( ! Error: Browsing on the local area network for iPhone. Ensure the ) 文章目录前言一、问题现象二、问题分析三、解决思路1、方案一 : 在 Xcode 中取消配对或关闭无线连接 ( 推荐 )2、方案二 : 手动删除系统配对记录 ( Xcode 看不到设备时使用 )四、注意事项与避坑1、注意事项2、长期预防总结前言本文单独记录一个 flutter devices 命令的高频小坑 : 明明真机已经拔掉 , 命令末尾却总是弹出两条无线搜索失败的报错 ( code -27 ) ;全文按照 问题现象 , 问题分析 , 解决思路 , 注意事项与避坑 的顺序展开 , 每一步都先给出操作要点 , 再展开底层原理 , 力争一次排查到位 ;一、问题现象在 MacOS 中 , 进行 Flutter 真机调试 , 执行 flutter devices 命令后 , 出现如下报错信息 : 命令末尾固定追加两条局域网搜索报错 ;hslhanshuliangdeMacBook-Air device_repair % flutter devices Found3connected devices: iPhone17(mobile)• B7CC39C4-F7C1-44E2-8D2A-7711B904AA46 • ios • com.apple.CoreSimulator.SimRuntime.iOS-26-5(simulator)macOS(desktop)• macos • darwin-arm64 • macOS26.525F71 darwin-arm64 Chrome(web)• chrome • web-javascript • Google Chrome153.0.8010.53 No wireless devices were found. Error: Browsing on thelocalarea networkfor九榜十五便士. Ensure the device is unlocked and attached with a cable or associated with the samelocalarea network as this Mac. The device must be opted into Developer Mode to connect wirelessly.(code -27)Error: Browsing on thelocalarea networkforiPhone. Ensure the device is unlocked and attached with a cable or associated with the samelocalarea network as this Mac. The device must be opted into Developer Mode to connect wirelessly.(code -27)Runflutter emulatorsto list and start any available device emulators. If you expected another device to be detected, please runflutter doctorto diagnose potential issues. You may also try increasing thetimetowaitforconnected devices with the--device-timeoutflag. Visit https://flutter.dev/setup/fortroubleshooting tips. hslhanshuliangdeMacBook-Air device_repair %执行flutter doctor命令 , 输出如下报错信息 :hslhanshuliangdeMacBook-Air device_repair % flutter doctor Doctor summary(to see all details, run flutter doctor -v):[✓]Flutter(Channel stable,3.41.7, on macOS26.525F71 darwin-arm64, locale zh-Hans-CN)[✓]Android toolchain - developforAndroid devices(Android SDK version36.0.0)[✓]Xcode - developforiOS and macOS(Xcode26.5)[✓]Chrome - developforthe web[✓]Connected device(3available)!Error: Browsing on thelocalarea networkfor九榜十五便士. Ensure the device is unlocked and attached with a cable or associated with the samelocalarea network as this Mac. The device must be opted into Developer Mode to connect wirelessly.(code -27)!Error: Browsing on thelocalarea networkforiPhone. Ensure the device is unlocked and attached with a cable or associated with the samelocalarea network as this Mac. The device must be opted into Developer Mode to connect wirelessly.(code -27)[✓]Network resources • No issues found!hslhanshuliangdeMacBook-Air device_repair %关键特征 :报错中的设备名都是历史上连接过 , 但当前并未连接的真机 ;特征一 :两台设备名 ( 九榜十五便士 与 iPhone ) 均为曾经连接过这台 Mac 的真机 ;特征二 :报错发生在命令末尾 , 设备列表本身仍然正常输出 , 命令并未失败 ;特征三 :无论真机是否收起来 , 每次执行 flutter devices 都会重复出现 , 稳定复现 ;这是无线搜索失败的警告 , 不是设备发现流程出错 ;报错文案中的 Browsing on the local area network 表示工具链正在通过局域网 mDNS 协议搜索设备 ;code -27 是搜索超时的错误码 , 表示局域网内没有找到对应设备 ; 该报错不阻塞命令执行 , Found 3 connected devices 的结果依旧有效 ;二、问题分析分析结论 :根因是历史真机配对记录中保留了无线连接标记 , 设备断开后工具链仍按标记持续搜索 ;原因一 :这两台 iPhone 之前连接时 , 在 Xcode 中勾选过 Connect via network ( 无线调试 ) ;原因二 :该勾选状态会随配对记录持久化保存在 Mac 本地 , 不会因拔线而自动清除 ;原因三 :flutter devices 每次执行都会枚举所有已配对设备 , 对带无线标记的设备发起局域网 mDNS 搜索 , 搜不到就输出 code -27 报错 ;原理说明 :无线调试依赖 mDNS 服务发现 , 断线只是让搜索失败 , 并不会撤销标记 ;真机开启无线调试后 , 会通过局域网向外广播苹果私有服务 , Mac 端发现该服务后即可脱离数据线完成安装与调试 ;设备离线后 , 广播消失 , 搜索超时报出 code -27 ; 但配对记录里的无线标记依然存在 , 所以每枚举一次就报错一次 , 形成稳定复现 ;三、解决思路1、方案一 : 在 Xcode 中取消配对或关闭无线连接 ( 推荐 )操作流程 :打开 Xcode 设备管理窗口 , 对离线设备取消配对 , 或仅关闭无线连接勾选 ;步骤一 :打开 Xcode , 菜单栏选择 Window - Devices and Simulators , 快捷键 Shift Cmd 2 ;步骤二 :左侧设备列表会显示这两台离线 iPhone , 状态为 disconnected 或 offline ;步骤三 :彻底清除则右键选择 Unpair Device ( 取消配对 ) ; 保留配对则只取消右侧 Connect via network 的勾选 ;步骤四 :对两台设备分别处理完成后 , 重新执行 flutter devices 验证报错是否消失 ;原理说明 :取消配对会删除本地的配对记录 , 无线标记随之消失 ;Unpair Device 会同时清掉 Mac 端与设备端的信任关系和配对记录 , mDNS 搜索自然不再发起 ; 仅取消 Connect via network 勾选则是保留数据线调试能力 , 只关闭无线枚举 , 代价最小 ; 彻底取消配对的副作用是下次连接真机需要重新执行一次信任此电脑流程 ;2、方案二 : 手动删除系统配对记录 ( Xcode 看不到设备时使用 )操作流程 :定位并删除 /var/db/lockdown 下目标设备的配对文件 ;步骤一 :先用以下命令列出全部配对记录 , 每个长 UUID 文件对应一台设备 ;步骤二 :借助设备 UDID 对照工具输出 , 确认目标设备对应的记录文件 ;步骤三 :使用 sudo 删除对应 plist 文件 , 两台设备各删一个 ;步骤四 :重启 Mac 后重新执行 flutter devices 验证 ;# 查看当前所有配对记录ls/var/db/lockdown/# 借助 devicectl 查看已配对设备 , 辅助对照 UDIDxcrun devicectl list devices# 删除目标设备的配对记录 ( 两台设备各执行一次 )sudorm/var/db/lockdown/设备UDID.plist原理说明 :lockdown 目录是 macOS 管理设备信任与配对的核心数据库 ;usbmuxd 守护进程依赖 /var/db/lockdown 下的记录文件判断设备是否可信 , 文件中同时保存了证书 , 设备信息与无线连接标记 ; 删除文件即彻底清除该设备的全部本地痕迹 , 搜索源头消失 , 报错随之消失 ; 该方案比 Xcode 界面操作更彻底 , 适合设备已经送修 , 出售或无法再连接的场景 ;四、注意事项与避坑1、注意事项避坑清单 :处理过程中容易忽略的几个点 ;报错无危害 :code -27 只是搜索超时警告 , 不影响设备列表输出 , 也不影响模拟器与真机的正常调试 ;优先选方案一 :Xcode 界面操作安全可控 , 手动删文件属于底层操作 , 删错记录需要重新信任 ;区分两台设备 :设备名 iPhone 过于宽泛 , 删除前务必用 UDID 对照确认 , 避免误删正在使用设备的记录 ;副作用预期 :彻底取消配对后 , 下次连接该真机需要重新信任一次电脑 , 属预期现象 ;2、长期预防预防思路 :从习惯上避免留下无线搜索的尾巴 ;随用随关 :不使用无线调试时 , 保持 Connect via network 不勾选 , 配对记录便不会触发局域网搜索 ;及时清理 :设备送修或出售前 , 先在 Xcode 中执行 Unpair Device , 避免留下死记录 ;固定调试机 :保留少量常用调试设备 , 减少配对记录堆积 , 降低 flutter devices 的枚举负担 ;总结核心结论 :删掉无线标记 , 报错自然消失 ;根因一句话 :历史真机开启了无线调试 , 配对记录里的无线标记让工具链在设备离线后仍持续发起 mDNS 搜索 ;解法一句话 :优先在 Xcode 中 Unpair 或取消 Connect via network 勾选 , 备选删除 /var/db/lockdown 配对记录 ;认知一句话 :code -27 是警告不是故障 , 清理与否取决于是否在意输出的整洁 ;
返回列表