如何使用 Xcode 14 运行 iOS 17 设备
Xcode 15 beta 不附带 iOS 17 的设备支持文件。我们可以通过任何其他方式在 Xcode 14 上运行 iOS 17 设备
在终端中运行:
defaults write com.apple.dt.Xcode DVTEnableCoreDevice enabled
然后重新启动 Xcode 14,iOS 17 设备将显示在 Xcode 中,如下所示,您可以像往常一样运行和调试应用程序。 (您可能需要转到设备和模拟器来配对/信任设备)
我已将 Xcode 15 beta 与 Xcode 14 一起安装,我不确定是否需要这样做。
这有点复杂,但我发现在 iOS17 设备上测试使用 Xcode 14 构建的应用程序的唯一方法 - 同时仍然能够进行调试,如下所示:
- 使用 Xcode 14 存档应用程序 - 选择“Any iOS Device”运行目标。
- 在Organizer中,选择archive,然后选择“Show in finder”。
- 使用“Show Package Contents”展开存档,然后打开“Products -> Applications”以查看该应用程序 - 稍后将需要它。
- 关闭 Xcode 14,然后打开 Xcode 15。
- 在 Xcode 15 的“Devices and Simulators”中,选择您的 iOS17 设备。
- 点击“Installed Apps”底部的“+”按钮,然后从步骤 #3 中删除应用程序文件。您应该在“Installed Apps”列表中看到应用程序更新的内部版本号。
- 现在,您可以在 iOS 17 设备上手动运行 Xcode 14 中的应用程序构建 - 不要使用 Xcode 15 中的“Cmd+R”,否则您将替换刚刚安装的应用程序。
- 仍然在 Xcode 15 中,使用“Debug -> Attach to Process”附加到应用程序的进程 - 断点似乎不起作用,但您可以打印到日志。
当然,您也可以通过 TestFlight 交付应用程序,而不是执行步骤 1-6,然后使用 Xcode 15 和 iOS17 设备附加到应用程序的进程。
我在 Apple Dev Forum 上的原始回答: https://developer.apple.com/forums/thread/730947?answerId =756651022#756651022
截至目前,还没有适用于 iOS 17 的设备支持文件。
With iOS 17+, we are using a new device stack (CoreDevice) to communicate with devices. With this new device stack, there is one DDI per platform (as opposed to per OS release). This same device stack will be shared across all versions of Xcode on your system, and installing a newer version of Xcode will update CoreDevice and its DDIs (just like how CoreSimulator is updated if you are familiar with that).
This effectively means that you now have a supported way of updating the device stack on your system to support newer target OS devices. With CoreDevice, you should be able to debug devices running future versions of iOS using Xcode 15. This may require first installing a newer Xcode in order to install newer CoreDevice and DDIs, so keep that in mind.
Of course, this also means there is a temporary hiccup in which the old unsupported path doesn't work, but the good news is that future-you will have a supported way of doing this which works out-of-the-box, no need to modify your Xcode.app.
看看这个苹果论坛,
建议他们仅使用 Xcode 15 beta。
Good news is, hereafter we don't need to update device support files in the future it will work by default if we install the latest version of XCode :)
当涉及到在 iOS 17(或 macOS 14、watchOS 10、tvOS 17、DriverKit 23 或 VisionOS 1)设备上部署应用程序时,有一种官方认可的方法:使用 Xcode 15。
iOS 17 requires Xcode 15 for deployment
对于那些喜欢坚持使用较旧 Xcode 版本(即 Xcode 14.3.1 或更早版本)的人,请不要担心。您仍然可以通过使用简单的命令启用 CoreDevice 来使其工作:
defaults write com.apple.dt.Xcode DVTEnableCoreDevice enabled
执行这些命令后,快速重新启动 Xcode 将使一切顺利运行。但是,如果您在设备上仍然遇到部署错误,解决方案在于安装 Xcode 15。此安装将自动获取必要的文件,并方便地在您的系统上共享。
要了解其背后的基本概念,请访问 链接。
苹果开发者论坛正式表示,即使它在过去可能有效,也不支持您尝试做的事情。但如果您想探索非官方或黑客风格的方法,您可以考虑以下方法:
- 启动适用于 iOS 17 的 Corellium Virtual iPhone(默认情况下已越狱)
- 设置 USBFlux 以将设备作为虚拟连接的本地 USB 设备远程传递到本地 Xcode 14。
- 调试附加到指定进程并与其交互。
请参阅https://support.corellium.com/features/connect/usbflux
有人假设您无法升级到 Xcode 15 - 这是一个正确的假设吗?如果您处于这种情况,间接方法是改进应用程序内的日志记录,然后查看在 iOS 17 上安装它是否会显示任何问题,随后可以从控制台应用程序中查看的日志进行调试。
另一种方法是,如果您的应用程序是模块化的并且只有一个方面失败,您可以创建一个新应用程序,仅合并相关的相关模块,然后在本地使用 Xcode 15,并使用它来调试您的问题。
部署到 iOS 17 设备的一种方法是使用 Xcode 15。