在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 起跳是最低要求。