如何使用 Xcode 构建与旧 MacOS 兼容的应用程序?

Posted

技术标签:

【中文标题】如何使用 Xcode 构建与旧 MacOS 兼容的应用程序?【英文标题】:How to Build an Application compatible with older MacOS with Xcode? 【发布时间】:2019-05-16 08:04:47 【问题描述】:

我刚刚在 MacOS 10.14 (Mojave) 上安装了最新版本的 Xcode (10.1)。 我可以构建我的应用程序,它在我的 Mac 或类似系统上运行良好。

但是,我想与使用 MacOS 10.11 (El Capitan) 的人共享此应用程序,但它无法启动,要求最低要求为 MacOS 10.13 (High Sierra)。

我的应用程序很简单,我不能编译它来兼容旧的 MacOS 吗?


经过一番研究,我确实下载了 MacOSX10.11.sdk (来自https://github.com/phracker/MacOSX-SDKs/releases/)。 我确实解压它,并将其拖入: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs (这个文件夹最初只包含“MacOSX.sdk”和一个指向它的链接,名为“MacOSX10.14.sdk”)

我还注意到文件 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Info.plist 中字符串“MinimumSDKVersion”的值等于“10.11”,这在我的情况下听起来不错。

我在一些论坛上看到不支持向 Xcode 添加额外的 SDK 版本。顺便说一句,我在 Xcode 中看不到任何菜单来指定我的目标构建(在 Xcode 首选项和项目设置中都没有(见下图)。

我在哪里可以告诉 Xcode 使用,比如说“MacOSX10.11.sdk”而不是“MacOSX10.14.sdk”?

还有,有没有更好的办法?

或者,我是否必须在不同的分区上安装旧版本的 MacOS,并使用旧版本的 Xcode(这会很痛苦)?

【问题讨论】:

您应该针对最新的 SDK 进行编译,并将“最小部署目标”设置为您希望支持的最早的 macOS 版本 (***.com/a/46467255/233944)。请注意仅使用运行您的应用的系统上可用的 API。 @TheNextman 谢谢,这正是我正在寻找的选项。所以我没有找对地方。我在想象复杂的方法,但解决方案非常简单。如果您将评论写为答案,我会非常接受。您指向的 SO 票完美地说明了选项所在的位置。我没有找到它,因为我没有想到“部署目标swift”这样的关键字。再次感谢您的宝贵时间! 【参考方案1】:

我不确定这是否仍然适用于 Mojave,但有一个名为 XcodeLegacy 的项目是专门为此目的而创建的: https://github.com/devernay/xcodelegacy

【讨论】:

【参考方案2】:

关于菜单,你可以在:Xcode -> Select File -> Project/Workspace Setting

Open Workspace Settings

在 Xcode 13 上工作,我参加聚会有点晚了,但遇到了同样的问题。

【讨论】:

以上是关于如何使用 Xcode 构建与旧 MacOS 兼容的应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

Axis2 与旧 wsdl 文件/Web 服务的兼容性

如何在构建需要此包的 xcode 项目时链接 macOS 包所需的框架

Xcode 5,如何使用与 IOS 6 和 IOS 7 兼容的 UI 构建应用程序 [重复]

如何提交与旧版本 iOS 不兼容的新版本应用程序?

Hadoop-3.0.0 与旧版本 Hive、Pig、Sqoop 和 Spark 的兼容性如何

如何使用 xcode-select 选择 XCode 3.2.6?