如何选择macOS最低版本?
如何选择macOS最低版本?

如何选择macOS最低版本?

在Xcode开发时,会要求选择最低部署版本。

下图为Xcode16所提供的macOS最低部署版本选项。

分别是macOS 11 BigSur、macOS 12 Monterey、macOS 13 Ventura、macOS 14 Sonoma和macOS 15 Sequoia。

项目目标和受众

如果是开发个人项目或内部工具

可以选择较新的 macOS,例如 macOS 13 (Ventura) 或 macOS 14 (Sonoma),享受新 API。

如果是开发面向大众用户的 App(通过 Mac App Store 或广泛发布)

建议选择较低但仍流行的 macOS 版本,例如:

macOS 12 Monterey(2021 年发布)仍有大范围用户。

macOS 11 Big Sur(2020 年发布)兼容性更好,但可能缺少部分新 API。

使用的开发工具和框架

使用 SwiftUI 并依赖新 API?那就需要较新版本:

macOS 11:初步支持 SwiftUI 2(Xcode 12)

macOS 12:支持 SwiftUI 3

macOS 13:支持 SwiftUI 4(推荐)

macOS 14:支持 SwiftUI 5(Xcode 15)

macOS 15(测试版):支持 SwiftUI 6(Xcode 16)

App 功能或样式依赖

窗口管理:macOS 13 开始支持 .windowStyle(HiddenTitleBarWindowStyle())。

菜单栏支持 / 多窗口管理:也受 macOS 版本影响。

Swift Concurrency(如 async/await):macOS 12 起才全面支持。

总结

1、最广泛用户支持:macOS 11(Big Sur)。

2、支持 SwiftUI 基础功能:macOS 11 起。

3、使用 .windowStyle 等新功能:macOS 13 起。

4、使用 Swift Concurrency:macOS 12 起。

5、使用 SwiftUI 5 / Charts 等:macOS 13–14。

可以参考《macOS系统支持的Mac型号》文章,了解Mac型号对应支持的macOS系统。从Mac型号上来看, 13年到14年的Mac只能使用macOS 11,15年和16年的Mac使用macOS 12,17年的Mac使用macOS 13,18年和19年的Mac可以使用macOS 14和macOS 15。

如果要支持13年和14年的十年老Mac,可以考虑macOS 11,但它们太旧了

15年和16年的Mac到现在也快10年了,我的16年MacBook Pro现在电池不行,屏幕也黑屏(排线门),已经不支持很多的系统,如果有旧电脑的需求,可以考虑macOS 12。

17年的Mac使用macOS 11,如果考虑支持17年的Mac,就可以考虑支持macOS 13或者更早的macOS 12。

18年以后的Mac都可以升级到macOS 15,macOS 14和macOS 15都满足最新的开发技术。

所以,如果考虑老电脑(10年的老电脑),可以选择macOS 12作为最低版本,如果考虑新的技术,推荐macOS 14作为最低版本。

如果想要支持老电脑,但又需要 .windowStyle(HiddenTitleBarWindowStyle()) 等 SwiftUI 4 新特性,可以选择 macOS 13 Ventura。

参考文章

macOS系统支持的Mac型号:https://fangjunyu.com/2025/06/18/macos%e7%b3%bb%e7%bb%9f%e6%94%af%e6%8c%81%e7%9a%84mac%e5%9e%8b%e5%8f%b7/

扩展知识

为什么现在在 Xcode 项目中看不到 macOS 10 或更早的系统作为最低支持版本?

因为2001年–2019年,系统版本为macOS 10.x,名称为OS X / macOS 10.x,例如macOS 10.0 ~ 10.15。

从2020年起,系统版本被命名为macOS 11,名称为macOS + 数字版本,从macOS 11.0 Big Sur 起彻底改名。

为什么 Xcode 不再显示 macOS 10.x 以下版本?

1、Apple 官方最低支持:macOS 11

从 Xcode 13 开始,Apple 将默认最低支持版本提高到 macOS 11。

Xcode 14 之后,macOS 10.15 也基本被移除,不再作为默认可选项。

新的 SwiftUI API 也完全不支持 macOS 10.x,必须 macOS 11+。

2、架构变化:支持 ARM(Apple Silicon)

macOS 11 是第一个同时支持 Intel 和 Apple Silicon 的 macOS。

这是 Apple 的重大转型期,也标志旧架构被逐步淘汰。

3、API 和语言兼容问题

Swift Concurrency(如 async/await):只支持 macOS 12+。

SwiftUI 大部分组件都依赖 macOS 11+,因此没必要支持更旧系统。

4、工具链移除旧 SDK

最新的 Xcode(比如 Xcode 15/16)已经移除了 macOS 10.15 及以前的 SDK。

即使愿意支持旧系统,也无法编译。

想支持 macOS 10.x?

理论上可以,但必须满足以下苛刻条件:

1、安装旧版 Xcode(比如 Xcode 12 或更早)。

2、使用 AppKit 编程(不能用 SwiftUI)。

3、放弃新语言特性和 API。

4、不支持 M1/M2/M3 芯片原生运行。

这在现在的生态下,几乎没有意义,因为:

App Store 审核也要求支持较新的 macOS 版本,否则可能无法上架。

如果使用Swift 或 SwiftUI 开发,支持 macOS 11 起跳是最低要求。

   

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开发者。

欢迎加入我们的 微信交流群QQ交流群,交流更多精彩内容!
微信交流群二维码 QQ交流群二维码

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注