如何使用 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 兼容的应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
如何在构建需要此包的 xcode 项目时链接 macOS 包所需的框架
Xcode 5,如何使用与 IOS 6 和 IOS 7 兼容的 UI 构建应用程序 [重复]