如何在 macOS Mojave 10.14.6 上运行 Xcode 11.4
Posted
技术标签:
【中文标题】如何在 macOS Mojave 10.14.6 上运行 Xcode 11.4【英文标题】:How to run Xcode 11.4 on macOS Mojave 10.14.6 【发布时间】:2020-04-03 14:03:07 【问题描述】:问题背景:
我的 iPhone 6s 已自行更新至 ios 13.4。在 iOS 更新之前,我可以通过 Xcode 在设备上编码 + 运行我的应用程序,非常棒。
现在我无法在设备上从 Xcode 运行我的应用程序来测试我的代码,正如它所说:
Xcode could not locate device support files
This iPhone 6s is running iOS 13.4 (17E255), which may not be supported by this version of Xcode. An updated version of Xcode may be found on the App Store or at developer.apple.com.
所以我尝试安装最新的 Xcode (11.4),它现在说我必须将整个操作系统更新到 Catalina。
我不想这样做,因为我的系统运行良好,而且我听说过有关该版本的坏消息。
问题:
有没有一种方法可以让 Xcode 构建到我的 iPhone 而不更新我的整个操作系统并可能搞砸我的整个机器?
【问题讨论】:
【参考方案1】:您无法在 Mojave 上运行 Xcode 11.4,但可以添加对 iOS 13.4 的支持
从this repo下载13.4镜像 退出 Xcode 解压缩存档并将文件夹移动到 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport 启动 Xcode考虑到这种方式只增加了对 iOS 13.4 的支持,没有别的。
更新:这不适用于 iOS 14,因为 iOS 14 需要 Xcode 12。
【讨论】:
为什么不让苹果知道?!谢谢!祝你有美好的一天,注意安全。 我不建议从不受信任的来源下载文件以将这些文件添加到您的 Xcode 安装中。相反,直接从 Apple 下载 Xcode 11.4 并从那里提取DeviceSupport
文件。这样,您就可以确信文件没有被修改。
非常感谢。我不明白他们为什么让你更新到 craptalina。真是一团糟
正如@Theo 所说,最好从可靠的来源下载,我从 Xcode 开发者资源网站下载了 Xcode 11.4,提取了 xip 文件并复制了位于 Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
的缺少 iOS 版本的 DeviceSupport 文件到旧的Xcode.app
在同一位置。成功了!
此方法也适用于 Xcode 11.3 上的 13.5,第一次运行可能需要 2-3 分钟才能启动【参考方案2】:
这是一个不需要从不受信任的来源下载文件的替代解决方案:
安装在 Mojave 上运行的最新版本的 Xcode(当前为 Xcode 11.3.1)。可以从苹果的developer pages下载。
从同一页面下载支持 iOS 13.4 的 Xcode 版本(例如 Xcode 11.4.1)。解压,重命名为“Xcode-11.4.1.app”,移动到Applications文件夹,但不要运行。
从 Xcode 11.4.1 中的 DeviceSupport 文件夹添加 iOS 13.4 的符号链接到 Xcode 11.3.1,如Peter Steinberger's Gist 中所述。
如果您使用此答案中使用的版本,添加符号链接的命令将是
sudo ln -s /Applications/Xcode-11.4.1.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/13.4 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
【讨论】:
为什么不直接将 iOS/tvOS 的 13.4 文件夹从 Xcode 11.4 复制到 Xcode 11.3.1 的工作副本中? 复制文件后,尝试打开 Xcode 时出现错误:缺少平台 iOS 模拟器所需的内容。撤消粘贴操作后,此错误不会消失。 ***.com/questions/40296756/… 对我来说是一个更简单的选择(不需要升级 Xcode)。 @Ryan 这个问题与 Homebrew 无关。【参考方案3】:您可以在运行 10.14 的 Mac 上运行 Xcode 11.4 - 11.7。
-
从https://developer.apple.com/download/下载Xcode 11.4 ~ 11.7
解压.xip文件,你会得到Xcode.app
将
Xcode.app/Contents/Info.plist
中的LSMinimumSystemVersion
从10.15.x 修改为10.14
现在您无需升级到 Catalina 即可使用 Xcode 11.4 ~ 11.7。
但是,这个技巧不适用于 Xcode 12,它需要一些 macOS Mojave 中不存在的框架。
【讨论】:
@MarekH 我还有You can’t use this version of the application “Xcode” with this version of macOS. You have macOS 10.14.6. The application requires macOS 10.15.2 or later.
你们是怎么解决的?
只需按照说明编辑 info.plist 即可。如果您尝试打开它(未编辑),macos 会记住并且不再检查(只需将 xcode 移动到其他文件夹编辑并再次打开)
我的 Info.plist 以某种方式以某种方式半加密 CFBundleIconName_CFBundleHelpBookName_CFBundleHelpBookFolder^NSExtensionSDK_CFBundleExecutable_LSMinimumSystemVersion_CFBundleSignatureZDTCompilerß - 我设法在applicationloader.net/appuploader/plist.php 上解密它得到正确的字段和 15 作为最低版本更改为 14 但重新打包后仍然 xcode 抱怨我需要 15 . 有什么技巧可以让这个方法起作用吗?
这对我有用,但为什么呢?我的意思是,为什么它似乎需要 Catalina,即使它在 Mojave 上运行良好?另外,我认为 Xcode 11.7 将允许我在 Mojave 上为 iOS 14 进行开发,并在检查 Wikipedia 上的兼容性表之前遇到了所有这些麻烦,所以请安息吧。
谢谢,我已经在 macOS 10.14.6 上安装了 Xcode 11.6,它可以工作了。【参考方案4】:
我的 Apple TV 4K 运行的是 tvOS 13.3,我升级到 13.4,这要求我使用这种技术来继续使用 Xcode 11.3.1。
奇怪的是,在 DeviceSupport 文件夹中,Xcode 11.3.1 仅随附 tvOS 至 13.2。那么它是如何与运行 13.3 的硬件设备一起工作的呢?我猜 13.2 和 13.3 足够接近,以至于 13.2 仍然可以工作。
13.4 无法开箱即用,因此我将 Xcode 11.4.1 应用程序中的 13.3 和 13.4 都复制到了我的 11.3.1 应用程序中。一切都好起来了。
【讨论】:
【参考方案5】:您可以在运行 10.14 的 Mac 上运行 Xcode 11.4 - 11.7。
从https://developer.apple.com/download/下载Xcode 11.4 ~ 11.7 解压.xip文件,你会得到Xcode.app 将Xcode.app/Contents/Info.plist
中的LSMinimumSystemVersion
从10.15.x 修改为10.14.6
现在您无需升级到 Catalina 即可使用 Xcode 11.4 ~ 11.7。 但是,这个技巧不适用于 Xcode 12。 我在我的 mac mojave 10.4.6 上尝试了这个技巧
【讨论】:
以上是关于如何在 macOS Mojave 10.14.6 上运行 Xcode 11.4的主要内容,如果未能解决你的问题,请参考以下文章
ThinkPad T470p 黑苹果 macOS Mojave 10.14.6
ThinkPad T470p 黑苹果 macOS Mojave 10.14.6