Xcode 版本与部署目标版本?

在发布我们的 SDK 时,一个时常需要考虑的问题:我们的新版本 SDK 应该支持哪些“版本”?

这里的“版本”指代很多的东西,比如:

哪些型号的硬件,如 Intel vs Apple M 或者有没有 LiDAR 和 GPS 的设备
最低的可以用于开发的 macOS 版本
最低的可部署的 iOS 版本
最低可用于开发的 Swift 编译器以及 Swift API 对应的版本,如 4.3,5.0,6.0 等等
……

作为苹果开发者很幸运:苹果公司和 macOS 已经尽量流线化整条产品线,作为苹…


This content originally appeared on DEV Community and was authored by Ting

在发布我们的 SDK 时,一个时常需要考虑的问题:我们的新版本 SDK 应该支持哪些“版本”?

这里的“版本”指代很多的东西,比如:

  • 哪些型号的硬件,如 Intel vs Apple M 或者有没有 LiDAR 和 GPS 的设备
  • 最低的可以用于开发的 macOS 版本
  • 最低的可部署的 iOS 版本
  • 最低可用于开发的 Swift 编译器以及 Swift API 对应的版本,如 4.3,5.0,6.0 等等
  • ……

作为苹果开发者很幸运:苹果公司和 macOS 已经尽量流线化整条产品线,作为苹果开发者毋需过多关注产品的兼容性——想想过去的 Windows 开发者要一直后向兼容到 Windows95,或者 Android 开发者不仅要兼容到 Android 4.0 还要在各种奇形怪状、性能高低的设备上测试,就庆幸自己手上的活儿已经足够简单;但发布时需要考虑的版本矩阵、排列组合,倒也并非一目了然。

苹果官方文档在这个页面上列出了对应的版本匹配,以方便专业开发者更好地厘清版本号的关联:https://developer.apple.com/support/xcode/

对于我们 SDK 而言,大体上的策略是每年 iOS 升级为版本 n,则兼容 n, n - 1, n - 2 三个版本。而 Xcode 基本目前也是一年一个大版本号,我们也就秉承着“新的 major 版本 Xcode n.0 发布后的我们 SDK 的第一次更新,升级至要求当前 Xcode n.0 大版本”这样的策略。

这几乎已经足够简单明了,但还是有个小的不足——

由于 Xcode 每年发布一个 major 大版本后 (Xcode 16.0),通常有四到五次 minor 小版本的更新 (Xcode 16.1 - Xcode 16.4),这就要求我们随时跟进 Xcode 更新,确保新的工具链依旧能开发、编译 SDK。同时,还要确保支持的最低版本 Xcode,不会因为 SDK 误用新引入的功能,而无法依赖引用它。因此,团队里几乎每一个开发者,都要安装至少三个版本的 Xcode:

  • Minimum requirement version, e.g., Xcode 16.0 (16A242d)
  • Current released version, e.g. Xcode 16.3 (16E140)
  • Next beta version, e.g., Xcode 16.4 Beta (16F1t) (Before WWDC) or Xcode 26.0 Beta (17A5241e) (after WWDC)

有时,因为切换 Xcode 版本失误,会有不兼容的 API 符号溜进代码里面。好在有重重把关,总有人能在发布前测试发现这样的问题,确保发布的 SDK 不会在某些我们号称支持的版本上不能用。

然而,还是有点儿后怕——如果版本号的问题从 SDE 和 DevOps 眼皮底下都溜过去,最终被用户碰到,也算事故了。除了给每一台部署和测试的机器都装上三个版本的 Xcode,留一堆各种版本 iOS 的测试机以外,还能有什么更好更灵活的办法,来质检版本号呢?🤔


This content originally appeared on DEV Community and was authored by Ting


Print Share Comment Cite Upload Translate Updates
APA

Ting | Sciencx (2025-06-17T22:20:21+00:00) Xcode 版本与部署目标版本?. Retrieved from https://www.scien.cx/2025/06/17/xcode-%e7%89%88%e6%9c%ac%e4%b8%8e%e9%83%a8%e7%bd%b2%e7%9b%ae%e6%a0%87%e7%89%88%e6%9c%ac%ef%bc%9f/

MLA
" » Xcode 版本与部署目标版本?." Ting | Sciencx - Tuesday June 17, 2025, https://www.scien.cx/2025/06/17/xcode-%e7%89%88%e6%9c%ac%e4%b8%8e%e9%83%a8%e7%bd%b2%e7%9b%ae%e6%a0%87%e7%89%88%e6%9c%ac%ef%bc%9f/
HARVARD
Ting | Sciencx Tuesday June 17, 2025 » Xcode 版本与部署目标版本?., viewed ,<https://www.scien.cx/2025/06/17/xcode-%e7%89%88%e6%9c%ac%e4%b8%8e%e9%83%a8%e7%bd%b2%e7%9b%ae%e6%a0%87%e7%89%88%e6%9c%ac%ef%bc%9f/>
VANCOUVER
Ting | Sciencx - » Xcode 版本与部署目标版本?. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2025/06/17/xcode-%e7%89%88%e6%9c%ac%e4%b8%8e%e9%83%a8%e7%bd%b2%e7%9b%ae%e6%a0%87%e7%89%88%e6%9c%ac%ef%bc%9f/
CHICAGO
" » Xcode 版本与部署目标版本?." Ting | Sciencx - Accessed . https://www.scien.cx/2025/06/17/xcode-%e7%89%88%e6%9c%ac%e4%b8%8e%e9%83%a8%e7%bd%b2%e7%9b%ae%e6%a0%87%e7%89%88%e6%9c%ac%ef%bc%9f/
IEEE
" » Xcode 版本与部署目标版本?." Ting | Sciencx [Online]. Available: https://www.scien.cx/2025/06/17/xcode-%e7%89%88%e6%9c%ac%e4%b8%8e%e9%83%a8%e7%bd%b2%e7%9b%ae%e6%a0%87%e7%89%88%e6%9c%ac%ef%bc%9f/. [Accessed: ]
rf:citation
» Xcode 版本与部署目标版本? | Ting | Sciencx | https://www.scien.cx/2025/06/17/xcode-%e7%89%88%e6%9c%ac%e4%b8%8e%e9%83%a8%e7%bd%b2%e7%9b%ae%e6%a0%87%e7%89%88%e6%9c%ac%ef%bc%9f/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.