iPhoneiOS更新14.7后的Xcode12.4“不支持的操作系统版本”
将 iPhone iOS 版本更新到 14.7+ 后,Xcode 12.4 无法再构建到该 iPhone 设备上。
在Xcode中选择构建目的地时(产品>目的地> [设备]或从下面显示的UI下拉列表)新更新的iPhone将在其旁边进行(unsupported OS version):
iPhone 列出了“(不支持的操作系统版本)”。
无法升级到 Big Sur / Xcode 12.5
我被困在 Mac OS Catalina(旧硬件)上,无法升级到需要 Big Sur 的 Xcode 12.5。
我们如何向 Xcode 添加/更新设备支持以构建到不受支持的 iPhone 版本(iOS 14.7+)?
回答
向 Xcode 添加/更新不支持的 iOS 版本
Apple 没有计划更新 Xcode 12.4 以支持 iOS 14.6、14.7 等。
但是我们可以复制 Xcode 版本 14.5 DeviceSupport 文件(如果需要下载)并将它们粘贴(或符号链接)到名为 14.6、14.7 等的目录中。(感谢@LPG 对符号链接的注释。)
Xcode 设备支持目录
Xcode DeviceSupport 目录位于:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
(在 Finder 中,右键单击 /Applications/Xcode 并选择Show Package Contents)
目录列表将不包括 14.6、14.7(甚至可能不包括 14.5)。
(如果 14.5 目录已经存在,只需根据需要复制/粘贴或符号链接该目录以将其复制为 14.6 或 14.7 等,否则...)
获取设备支持文件
获取设备支持文件的最快方法来自这个(非官方)Github 项目:
https://github.com/iGhibli/iOS-DeviceSupport
特别是,我们想要 12.5 发布候选 zip 文件(14.6、14.7 尚不存在):
https://github.com/iGhibli/iOS-DeviceSupport/blob/master/DeviceSupport/14.5(FromXcode_12.5_Release_Candidate_xip).zip
在 Github 的 12.5 Release Candidate 中,下载这个 .zip
下载文件后,双击 .zip 文件将它们解压到 14.5 目录中:
将 DeviceSupport 14.5 / 14.6 / 14.7 添加到 Xcode
将 14.5 目录复制并粘贴到/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport.
复制 14.5 目录并将其粘贴到同一目录 (into DeviceSupport) 中,然后根据需要将目录重命名为 14.6、14.7 等。
如果 Xcode 已打开,Clean Build Folder(在Product菜单标题下)。我不确定这是否绝对必要。(下次连接手机时,Xcode 还会更新和处理设备本身的缓存文件,这需要几分钟时间。)
关闭 Xcode(如果打开)。
通过 USB 连接 iPhone。如果您尚未更新 Mac OS 以支持 14.6/14.7 上的手机,您的 Mac 可能会要求您更新 Mac OS 软件以连接到您的 iOS 14.6/14.7 设备。我接受了这个更新请求。花了几分钟才完成。(我相信这与 Xcode 无关,而与 iTunes 和其他 Mac 服务等无关。)
在此之后我需要重新启动我的 Mac。不确定是否每个人都需要这样做。
打开 Xcode。打开 Runner 旁边的构建目标下拉菜单,您的 iPhone 14.6 / 14.7 设备应该(希望)旁边不再有“(不受支持的操作系统版本)”注释。
现在,作为 Xcode 12.4 下受支持的 14.6 / 14.7 手机设备,您应该能够将应用程序的调试、配置文件和发布版本构建到您的物理 iPhone。
其他事宜
“在为开发准备设备时遇到错误。请检查设备和模拟器窗口”
- 尝试重新启动您的手机/iOS 设备
- Probable duplicate of https://stackoverflow.com/questions/62526772/device-support-files-ios-14-for-xcode11 and many others. But I really cannot get behind the idea of doing something unsupported like this, and especially by downloading an insecure file.
- 仍然适用于 iOS 14.7。使用符号链接就足够了,不需要实际的副本。