PAYATHON 2026

如何让 Xcode 26 始终通过 USB 而非 WiFi 调试 iPhone?

数据小陈

能否强制使用 USB?

可以暂时关闭 Mac 的 WiFi,并断开以太网连接,尝试让 Xcode 重新通过 USB 连接 iPhone。你已经尝试过关闭 iPhone 的网络,接下来可以排查 Mac 是否仍在使用无线或局域网调试通道。

目前没有足够依据确认 Xcode 26 提供了可永久锁定为“仅 USB”的公开设置。以下方法用于切换连接和排查问题,不能保证解决所有 Xcode 26、iOS 和 macOS 组合下的问题。

为什么插着 USB 仍可能断连?

插入线缆不能单独证明当前调试会话已经走 USB。Apple 曾在 Xcode 15 Release Notes 中记录:已有无线连接时,插入 USB 后可能仍继续使用无线连接。当时的处理方法是关闭再开启 Mac 的 WiFi,让 Xcode 通过 USB 重连。这条旧版本问题说明可以作为排查依据,但不能直接认定 Xcode 26 存在同一个缺陷。

USB 调试也可能使用网络协议。Apple 的 TN3158 说明,Xcode 15 通过 USB 与设备通信时使用网络接口及链路本地 IPv6。因此,出现网络相关提示,并不能说明物理连接一定是 WiFi。

按什么顺序切换连接?

  1. 停止当前调试会话,使用支持数据传输的 USB 线将 iPhone 直接连接到 Mac,解锁设备并完成必要的信任确认。
  2. 在 Mac 上关闭 WiFi;如果连接了以太网,也暂时断开。只关闭 iPhone 的 WiFi,无法完成这一步排查。
  3. 打开 Window > Devices and Simulators,等待 Xcode 重新识别设备。TN3158 使用设备旁的地球图标判断是否经普通网络接口连接;如果当前版本仍显示该标识,可以用来辅助观察连接变化。
  4. 设备恢复可用后,重新运行应用,先验证断点能否正常命中。
  5. 再开启 iPhone 的飞行模式,确认 WiFi 已关闭,观察调试会话能否保持。验证期间,先保持 Mac 的外部网络断开,减少连接路径变化。

这些步骤参考了 Apple 的 USB 连接排查方法。如果设备始终无法恢复可用,应继续排查 USB 通信,而不是反复启动应用。

仍提示必须位于同一网络怎么办?

先检查数据线、USB 接口和设备信任状态,再检查 Mac 上的 VPN、网络过滤器或安全软件。TN3158 明确列出,部分 VPN 和过滤规则可能阻断 USB 调试所需的链路本地 IPv6 流量。在允许调整配置的环境中,可以逐项停用相关软件进行对照,确认是否由它们引起。不要仅凭提示就认定设备必须接入同一个 WiFi。相关说明见 TN3158。

如果问题仍能稳定复现,记录 Xcode、iOS、macOS 的具体版本,以及断网和插线顺序,再通过 Feedback Assistant 提交问题。缺少这些信息时,无法进一步确定是连接选择、设备配对还是特定版本的问题。

离线测试和调试变慢要分别验证

100% 丢包时,网络接口和路由可能仍然存在,请求通常需要等待失败或超时;关闭网络接口则可能触发不同的网络状态变化。因此,Network Link Conditioner 的丢包测试不能完整替代无连接测试。

确认 USB 调试能够保持后,再比较首次断点等待时间和 po 响应。原问题中的 20 至 30 秒、5 至 10 秒是当前环境下的现象,不能仅凭这些时间认定瓶颈全部来自 WiFi;符号加载和 LLDB 表达式求值也应单独观察。切换 USB 后是否改善,需要在同一项目和设备上实际对照。

备注:内容仅供参考。