如何在 Xcode 9 中使用 iOS 11、Apple TV 4K 等进行无线调试?

Posted

技术标签:

【中文标题】如何在 Xcode 9 中使用 iOS 11、Apple TV 4K 等进行无线调试?【英文标题】:How do you perform wireless debugging in Xcode 9 with iOS 11, Apple TV 4K, etc? 【发布时间】:2017-06-06 06:31:50 【问题描述】:

最近在 Xcode 9、ios 11 和 tvOS 11 中添加了无线调试功能。Apple TV 4K 没有 USB 端口,因此需要无线调试。您如何在 Xcode 中执行这种无线调试?

【问题讨论】:

有人真正成功地进行了无线调试吗?我遵循了相同的步骤,但是当我尝试进行无线调试时,它一直显示 iphone 已断开连接。连接调试工作正常。 @SeriousSam 它有效。您需要在同一个网络上。 我已经检查了无线调试,它工作正常 即使使用另一部系留的 iPhone 作为 WiFi 支持,它也能在这里工作。 连接在 10-20 秒后断开!。任何想法为什么如此,?谢谢! 【参考方案1】:

Set up a device for network debugging

来自 help.apple.com

通过 Wi-Fi 或其他网络连接调试在 iOS 或 tvOS 设备上运行的应用。

设置 iPhone、iPad 或 iPod touch 的步骤

    检查您的设备是否有密码和add one if it doesn't。您的设备必须有密码才能启用远程调试

    Mac 和 iPhone/iPad 需要在同一网络上才能使用无线调试。

接下来,在 Xcode 中

    选择Window > Devices and Simulators,然后在出现的窗口中点击Devices。 使用 Lightning 数据线将您的设备连接到 Mac。 在左侧栏中选择设备,然后在详细信息区域中选择通过网络连接

Xcode 与您的设备配对。如果 Xcode 可以使用网络与设备连接,则左栏中的设备旁边会出现一个网络图标。

    断开您的设备。

现在您可以通过网络进行调试了。

有时它不起作用。您可能需要重新启动设备或网络连接

注意:网络调试需要在 ma​​cOS 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 以进行无线调试并与设备配对。

【讨论】:

对我来说,它最初不起作用。但是当我重新启动设备时,它开始工作。感谢 Apple 的 wifi 调试 :) @Lacek 据我了解,通过 *** 进行无线调试是不可能的。将检查任何解决方法来做到这一点,如果有什么得到将在这里更新。 通过网络连接Apple TV时超级重要的说明:当您的Mac也通过USB连接到Apple TV时,它不起作用。 Mac macbook pro 没有“闪电转usb-c”适配器,是否可以在不通过电缆连接的情况下设置远程调试? @Luz 我可以确认此功能可以与 Open*** 结合使用,在 Mojave 上使用相当标准的 Open*** 配置从远程服务器进行调试。我有更多详细信息here,但如果有人需要详细说明,请随时与我联系。【参考方案2】:

我尝试过使用 Xcode 设备窗口的通过网络连接选项。但我看不到设备名称旁边的“通过网络连接”图标。同样,只要卸下 USB,“通过网络连接”选项就会消失。此外,设备名称显示在断开连接的设备列表下方。

但是使用“通过 IP 地址连接...”选项,我可以连接。

    右键单击设备名称(在已断开连接列表下)并选择“通过 IP 地址连接...”选项。

    键入设备的 IP 地址并选择连接。 (您可以通过移动设备设置> Wi-Fi > 选择wifi名称找到)

【讨论】:

当我输入 IP 并点击“连接”时,它会永远加载:( @Shyam 手机和mac都使用同一个wifi?还要仔细检查你是否使用了兼容的 Xcode。 我很确定两者都使用相同的 WiFi,Xcode 版本是 9.1、MacOS 10.13.1、iPhone 11.1。问题出在我希望的网络上,当我使用不同的网络时它可以工作 和我一样。但有时有效,有时无效......我需要关闭并打开我的xcode几次才能工作。两者都使用相同的 WiFi,Xcode 版本是 9.1,MacOS 10.13.1,iPhone 11.1。 @Shyam 需要一点时间......但它有效,这是唯一对我有用的解决方案。谢谢 damithH!【参考方案3】:

如果您已完成所有步骤given by Surjeet,但仍未获得网络连接图标,请按照以下步骤操作:

    已连接部分中右键单击设备,取消配对设备。

    重新连接设备。

    点击弹出窗口左侧末尾的“+”按钮。

    选择设备并点击下一步按钮

    点击设备上的信任密码(如果可用)

    点击完成按钮。

    现在,点击通过网络连接

现在您可以在设备名称后面看到网络连接图标。享受吧!

【讨论】:

是否有范围限制之类的条件?因为当我连接它时,它开始启动我的应用程序并断开连接? 设备名称后面看不到网络连接图标。这个问题与wifi连接有关吗? 是的,它成功了,我猜是因为它之前配对没有密码,但是当我们在设备设置中启用密码时,我们需要再次重新配对设备 也许是的,如果您的设备没有通过 wifi 连接,那么它不会出现 @pallavi【参考方案4】:

先决条件

您的 Mac 机器应至少具有 Mac OSX 10.12.4 或更高版本 您的 iOS 设备至少应安装 iOS 11.0 或更高版本 两台设备应该在同一个网络上。

激活步骤

通过电缆将您的 iOS 设备与 Mac 机器连接。

打开 Xcode,然后从顶部菜单 Window -> Devices and Simulators

选择 设备 细分并从左侧设备列表中选择您想要的设备。

在右侧您可以看到打开的通过网络连接,启用此选项,如附图所示。

几秒钟后,您可以在设备前面看到网络标志。

拔下您的设备并像正常使用一样使用调试。

谢谢

【讨论】:

你读过@Surjeet 的回答吗?这个答案不会增加任何显着的价值,并使帖子不必要的大。 @elGeekalpha 我开始关注 surjeet 的回答,但他没有提到相同的网络,我在通过网络连接时遇到了问题。是的,我的答案很大,但并非没有必要,因为我确实误会了其他用户不会,而且这个答案也会对新手有所帮助。希望您理解并且其他人也会提供帮助:享受编码 抱歉,我不想表现得粗鲁,但我的第一印象似乎是您没有阅读就写了它。感谢您的解释,也享受 WWDC17! “几秒钟后,您可以在设备前面看到网络标志。” 我很高兴看到这些照片。 “一千个字”等等。【参考方案5】:

如果关注the steps as described by Surjeet 后仍无法连接,请尝试关闭计算机的 Wi-Fi 再重新打开。这对我有用。

另外,请务必信任 iOS 设备上的开发者证书(设置 - 常规 - 配置文件和设备管理 - 开发者应用)。

【讨论】:

在电脑上切换 Wi-Fi 有帮助【参考方案6】:

网络调试需要在 macOS 10.12.4 上运行 Xcode 9.0 或更高版本 或更高版本,并且在设备上需要 iOS 11.0 或更高版本,或 tvOS 11.0 或更高版本。

iPhone

iOS 11 不适用于 32 位设备,即 iPhone 5 和 iPhone 5c 及更低版本。第一个64位iPhone是5s。

iPad

iPad mini 2 将是支持 iOS 11 的最老款 iPad。

iPod

iPod 必须是 iPod 6 才能运行 iOS。

如果您的设备不仅用于开发,还用于生产,请注意,Beta 版操作系统不适合胆小的人 ;-)

【讨论】:

iOS 11 与这些设备兼容。 iPhone iPhone 7 iPhone 7 Plus iPhone 6s iPhone 6s Plus iPhone 6 iPhone 6 Plus iPhone SE iPhone 5s iPad 12.9 英寸 iPad Pro 第二代 12.9 英寸 iPad Pro 第一代 10.5 英寸 iPad Pro 9.7 英寸iPad Pro iPad Air 2 iPad Air iPad 第 5 代 iPad mini 4 iPad mini 3 iPad mini 2 iPod iPod touch 第 6 代 实际支持 iPad Air - 第一个 64 位 iPad。【参考方案7】:

在新的Xcode9-beta中,我们可以使用无线调试 as said by Apple:

切断电源线 选择本地网络上的任何 iOS 或 tvOS 设备来安装、运行和调试您的应用程序 - 无需将 USB 线插入 Mac。首次使用新的 iOS 设备时,只需点击“通过网络连接”复选框,该设备将从那时起通过网络可用。无线开发也适用于其他应用程序,包括 Instruments、Accessibility Inspector、Quicktime Player 和 Console。

试试这个!

如果遇到断线问题,试试这个:

解决方法:在您的设备上启用飞行模式 10 秒,然后禁用飞行模式以重新建立连接

【讨论】:

@Surjeet 的回答要全面得多。 @Lacek 我不确定,但我怀疑,两个设备都应该连接到同一个 WiFi 网络。 我也怀疑,但是一旦我感到惊讶,iOS 的“我不会通过蜂窝网络下载超过 100 MB”消息的解决方案是什么 - 你将蜂窝网络连接到手机(通过 USB)并将其作为 WIFI 共享,然后 iOS 认为它正在使用 WIFI...我希望有类似的 hack,这次更多参与。 “在您的设备上启用飞行模式 10 秒”这有帮助!【参考方案8】:

我刚刚在 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地址被清除了,你可以输入一个新的了。

最后一个选项是创建一个计算机到计算机的网络。这很好用,但从逻辑上讲,您将无法访问互联网。

【讨论】:

似乎在 beta 4 中没有更多手动设置 IP 的选项。 :( 顺便说一句,我无法让带有 beta 4 的 iPhone 6s 连接到 Xcode 9 beta 4。 为了能够看到设置 IP 地址选项,我必须从 USB 端口拔下设备 2020 年结束了,但仍然是马车。【参考方案9】:

您可以打开 Xcode 帮助 -> 运行和调试 -> 网络调试以获取更多信息。希望对您有所帮助。

【讨论】:

【参考方案10】:

我遵循了所有建议的步骤,尤其是 ios_dev 提供的步骤,但 Xcode 无法识别我的 iPhone,并且我无法通过 WiFi 进行调试。右键单击“设备和模拟器”窗口中我的 iDevice 上的左侧面板,然后“通过 IP 地址连接...”,插入 iPhone IP,现在它可以正常工作了

【讨论】:

请务必注意:设备需要与系统断开连接才能显示此选项。【参考方案11】:

对于无线调试,Mac系统和iPhone/设备应该在同一网络上。 要在同一网络上制作,您可以执行以下操作 - 您可以在 Mac 上启动热点并在 iPhone/设备上连接,反之亦然。

On Mac

On iPhone-

Xcode ► 窗口 ► 设备和模拟器 ► 选择设备选项卡 ► 单击连接 通过网络

https://help.apple.com/xcode/mac/9.0/index.html?localePath=en.lproj#/devbc48d1bad

【讨论】:

当我的 iPhone XS Max 设置为个人热点并将我的 macbook pro 连接到它时,我无法将 iPhone 用作调试设备。对我有用的无线调试的唯一情况是将它们都连接到同一个 wifi 路由器。这在旅途中编码时非常烦人。我总是要随身携带电缆。【参考方案12】:

我的问题是关于网络 SSID 广播。

我已经尝试了上述所有解决方案,但仍然无法连接我的设备,我的设备根本没有“地球”图标。然后我发现由于某种原因我的网络关闭了它的 SSID 广播(我仍然可以通过手动输入 SSID 来连接网络)。打开 SSID 广播后,我可以通过“通过 IP 地址连接...”连接我的设备。

【讨论】:

请更完整地描述您遇到的问题。至少它如何解决有关“如何执行无线调试”的问题?如果这是一个单独的问题,请创建一个新问题并回答它【参考方案13】:

我尝试了所有答案,但对我没有任何帮助。我最终连接到不同的 WiFi 网络,然后我能够进行无线调试。

我不知道为什么它不适用于旧网络

【讨论】:

它在我的网络上对我不起作用。连接到蓝牙就达成了交易...不确定它是否有任何帮助或如何...【参考方案14】:

唯一对我有用的是使用蓝牙将我的手机连接到我的 MacBook。 (根据上面 ios_dev 的回答,我在通过电缆连接时首先将手机与 Xcode 配对后执行了此操作。)

在我的手机上,我转到“设置”>“蓝牙”,然后在“我的设备”下点击我 MacBook 的名称进行连接。

然后我转到 Xcode > 设备和模拟器,选择我的手机并选中“通过网络连接”。几秒钟后,地球图标出现在我的手机旁边,我可以在手机上运行和调试我的应用程序。

即使我的 MacBook 连接到 WiFi 网络并且我的手机使用 LTE,这也能正常工作。唯一的缺点是将应用程序安装到手机上速度很慢。

【讨论】:

确实!在尝试了所有其他方法后,通过蓝牙连接到我的 Mac 立即生效。【参考方案15】:

试试这个:

    使用避雷线将您的 iOS 设备插入 Mac。您可能需要在您的设备上选择信任此计算机

    打开 Xcode 并转到 Window > Devices and Simulators

    选择您的设备,然后选中通过网络连接复选框以配对您的设备。

    卸下照明电缆后运行您的项目。

【讨论】:

【参考方案16】:

Xcode 9 - 有关详细信息,请转到 帮助 -> 将无线设备与 Xcode(iOS、tvOS)配对

【讨论】:

【参考方案17】:

我可以让它工作的唯一方法是我的 Mac 和我的 iPhone 在不同网络上。我有一个主 DSL 调制解调器,称为 network1,第二个 network2 为我们设置了一个接入点。它们具有 SSID 网络 1 和网络 2。如果电话在network1上,而mac在network2上,它会工作,反之亦然。但是,如果两者都在 network1 上或都在 network2 上,则它不会工作。

【讨论】:

【参考方案18】:

使用 USB 端口启用 Internet 共享:

【讨论】:

【参考方案19】:

大声笑,我在这里执行了所有步骤 - 我最终执行了“由 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风格第一次。如果我连接,然后打开我的网络过滤器,它会断开我的手机。

【讨论】:

【参考方案20】:

第 1 步:第一次使用数据线连接手机

第 2 步:转到管理器和设备

第 3 步:勾选连接为网络

现在简单的技巧,每次都有效。

第 4 步:打开 iphone 上的热点

第 5 步:将您的 Mac 连接到该热点。

第 6 步:现在运行代码。

这将永远有效。

【讨论】:

以上是关于如何在 Xcode 9 中使用 iOS 11、Apple TV 4K 等进行无线调试?的主要内容,如果未能解决你的问题,请参考以下文章

iOS 11 适配以及Xcode 9小Tips

应用程序在 Xcode 9 和 iOS 11 中与谷歌地图 SDK cocoapods 一起崩溃 [关闭]

iOS 11 适配以及Xcode 9小Tips

当Apple从设置中删除时,如何在Xcode 9 Simulator中访问Twitter?

使用 XCode 9/iOS 11 的 Phonegap 错误

30分钟学会iOS 11开发环境xcode 9图文教程