最近在 Xcode 9、iOS 11 和 tvOS 11 中添加了无线调试功能。Apple TV 4K 没有 USB 端口,因此需要无线调试。您如何在 Xcode 中执行此无线调试?
20 回答
设置设备进行网络调试
来自 help.apple.com
通过 Wi-Fi 或其他网络连接调试在 iOS 或 tvOS 设备上运行的应用。
设置 iPhone、iPad 或 iPod touch 的步骤
检查您的设备是否有密码,如果没有,请添加密码。您的设备必须有密码才能启用远程调试
Mac 和 iPhone/iPad 需要在同一网络上才能使用无线调试。
接下来,在 Xcode 中
- 选择Window > Devices and Simulators,然后在出现的窗口中,单击Devices。
- 使用 Lightning 线缆将您的设备连接到 Mac。
- 在左栏中,选择设备,然后在详细信息区域中,选择通过网络连接。
Xcode 与您的设备配对。如果 Xcode 可以使用网络与设备连接,则左栏中的设备旁边会出现一个网络图标。
- 断开您的设备。
现在您已准备好通过网络进行调试。
有时它不起作用。您可能需要重新启动设备或网络连接。
注意:网络调试需要在macOS 10.12.4或更高版本上运行Xcode 9.0或更高版本,而在设备上则需要iOS 11.0或更高版本,或者tvOS 11.0或更高版本。
设置 Apple TV 的步骤:
确保您的 Mac 和 Apple TV 在同一网络上。
选择Window > Devices and Simulators,然后在出现的窗口中,单击Devices。
在 Apple TV 上,打开“设置”应用并选取“遥控器和设备” > “遥控器应用和设备” 。
Apple TV 会搜索可能的设备,包括 Mac。(如果您有任何防火墙或 Internet 安全,请禁用/关闭它以允许搜索。)
在 Mac 上,在“设备”面板中选择 Apple TV。Apple TV 的窗格随即显示并显示连接请求的当前状态。
将 AppleTV 上显示的验证码输入到设备的“设备”窗口窗格中,然后单击“连接” 。
Xcode 设置 Apple TV 以进行无线调试并与设备配对。
如果您已完成Surjeet 给出的所有步骤,但仍未获得网络连接图标,请按照以下步骤操作:
- 选择设备并单击下一步按钮
- 单击设备中的信任和密码(如果可用)。
- 单击完成按钮。
- 现在,单击通过网络连接。
现在您可以在设备名称后面看到网络连接图标。享受!
如果按照Surjeet 所述的步骤操作后仍无法连接,请尝试关闭计算机的 Wi-Fi 并重新打开。这对我有用。
另外,请务必信任 iOS 设备上的开发者证书(设置 - 常规 - 配置文件和设备管理 - 开发者应用程序)。
网络调试需要在 macOS 10.12.4 或更高版本上运行 Xcode 9.0 或更高版本,而在设备上则需要 iOS 11.0 或更高版本,或者 tvOS 11.0 或更高版本。
苹果手机
iOS 11将不适用于 32 位设备,即 iPhone 5 和 iPhone 5c 及更低版本。第一款 64 位 iPhone 是 5s。
iPad
iPad mini 2 将是最古老的支持 iOS 11 的 iPad。
iPod
iPod 必须是 iPod 6 才能运行 iOS。
如果您的设备不仅用于开发,还用于生产,请注意 beta 操作系统不适合胆小的人 ;-)
我刚刚在 WWDC 上与一些 Xcode 工程师交谈过,iDevices 的自动发现仍然有点问题。有时您的手机也无法正确广播。打开和关闭设备会有所帮助。
有一些解决方法/后备方案:
您可以使用 Bonjour 浏览器 (www.tildesoft.com) 检查您的手机是否正在广播。查看您的 wifi 地址是否列在名为“_apple-mobdev2._tcp”的服务下。- 215'(您可以在此处找到您的 wifi 地址:设置 > 常规 > 关于 > wifi 地址。
作为后备,您可以通过手动输入 IP 地址连接到您的设备(在“设备”窗口中右键单击您的设备)。但是,此 IP 地址将被保留,因此如果您更改网络,则需要重置此地址。该选项在 Xcode 中尚不可用,但您可以通过终端使用以下命令执行此操作:
defaults read com.apple.dt.Xcode | grep IDEIDS
这将打印您需要在下一个命令中使用的标识符:
defaults delete com.apple.dt.Xcode <identifier>
现在ip地址被清除了,你可以输入一个新的。
最后一个选项是创建一个计算机到计算机的网络。这很好用,但从逻辑上讲,您将无法访问互联网。
我遵循了所有建议的步骤,特别是 ios_dev 提供的步骤,但 Xcode 无法识别我的 iPhone,我无法通过 WiFi 进行调试。右键单击“设备和模拟器”窗口中我的 iDevice 上的左侧面板,然后“通过 IP 地址连接...”,插入 iPhone IP,现在它可以正常工作了
对于无线调试,Mac 系统和 iPhone/设备应该在同一网络上。 要在同一网络上制作,您可以执行以下操作 - 您可以在 Mac 上启动热点并在 iPhone/设备上连接,反之亦然。
或者
https://help.apple.com/xcode/mac/9.0/index.html?localePath=en.lproj#/devbc48d1bad
您可以打开 Xcode 帮助 -> 运行和调试 -> 网络调试以获取更多信息。希望能帮助到你。
我的问题是关于网络 SSID 广播。
我已经尝试了上述所有解决方案,但仍然无法连接我的设备,我的设备根本没有“地球”图标。然后我发现由于某种原因我的网络已经关闭了它的 SSID 广播(我仍然可以通过手动输入 SSID 来连接网络)。打开 SSID 广播后,我可以通过“通过 IP 地址连接...”连接我的设备。
尝试这个:
使用避雷线将您的 iOS 设备插入 Mac。您可能需要在您的设备上选择信任此计算机。
打开 Xcode 并转到Window > Devices and Simulators。
选择您的设备,然后选择通过网络连接复选框以配对您的设备。
卸下照明电缆后运行您的项目。
唯一对我有用的是使用蓝牙将我的手机连接到我的 MacBook。(根据上面 ios_dev 的回答,我在通过电缆连接时首先将手机与 Xcode 配对后执行了此操作。)
在我的手机上,我转到“设置”>“蓝牙”,然后在“我的设备”下点击我的 MacBook 的名称进行连接。
然后我转到 Xcode > 设备和模拟器,选择我的手机并选中“通过网络连接”。几秒钟后,地球图标出现在我的手机旁边,我可以在手机上运行和调试我的应用程序。
即使我的 MacBook 连接到 WiFi 网络并且我的手机使用 LTE,这仍然有效。唯一的缺点是将应用程序安装到手机上速度很慢。
我尝试了所有答案,但对我没有任何帮助。我最终连接到不同的 WiFi 网络,然后我能够进行无线调试。
我不知道为什么它不适用于旧网络
Xcode 9 - 有关详细信息,请转到帮助 -> 将无线设备与 Xcode(iOS、tvOS)配对
我可以让它工作的唯一方法是如果我的 Mac 和我的 iPhone 在不同的网络上。我有一个主 DSL 调制解调器,称为 network1,第二个 network2 为我们设置了一个接入点。它们具有 SSID 网络 1 和网络 2。如果电话在network1上,而mac在network2上,它会工作,反之亦然。但是,如果两者都在 network1 上或两者都在 network2 上,它将无法正常工作。
第 1 步:第一次用电缆连接手机
第 2 步:转到管理器和设备
第 3 步:勾选连接为网络
现在简单的技巧,每次都有效。
第 4 步:在 iPhone 上打开热点
第 5 步:将您的 Mac 与该热点连接。
第 6 步:现在运行代码。
这将始终有效。
大声笑,我在这里做了所有的步骤——我最终做了“由 Surjeet 给出”答案中的取消配对/修复步骤。它不起作用,然后我注意到当我单击“通过网络连接”按钮时,会弹出与您修复时弹出的相同的黄色框,说“忙” - 我很沮丧,刚刚开始敲击“通过网络连接”按钮,快速单击它可能会单击 15 到 20 次 - 它开始出现异常,但最终能够连接到网络。在此之前,我还关闭了我的wifi并再次打开它,正如其中一个答案所建议的那样,但是点击“通过网络连接”按钮真的很快就成功了......哈哈
此外,在我敲击按钮之前,我链接了设备支持文件夹,尽管我不确定它是否有任何作用:
打开终端
cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
ln -s 13.3 13.4
ls -l 13.4
重启 Xcode 并在设备上重试运行
据说在这里做 - https://forums.developer.apple.com/thread/126940 - 我在评论中编辑了文件夹版本以适应最新版本的 iOS 13.4。
编辑
我相信我知道我的问题是什么,我不得不停止我的Little Snitch
网络过滤器。此外,在我能够通过敲击按钮进行连接后,当您在 xcode 的设备管理器中右键单击设备时,下拉菜单中会出现“通过 IP 地址连接”选项,在我能够连接之前它不存在超hacky风格第一次。如果我连接,然后打开我的网络过滤器,它会断开我的手机。