如果 App Store Connect 因为 SDK 或 Xcode 版本不受支持而拒收上传,用一个满足 Apple 当前最低要求的正式版 Xcode 重新归档,再上传新构建。到 2026 年 11 月 1 日,最低要求是 Xcode 26 加 iOS 26 SDK(从 2026 年 4 月 28 日起),Apple 发布页上最新的正式版是 Xcode 27.2(构建号 27B52,2026 年 10 月 29 日)。重新上传前,先从构建出的 App 的 Info.plist 里读出 DTXcodeBuild 和 DTSDKName:它们告诉你归档到底是哪个 Xcode 做的,而这常常不是你以为的那个。
Apple 没有为这条提示单独写帮助页,所以本文只讲 Apple 公开了的规则,并标出它没说的地方。
构建可能违反的两条规则
太旧。 Apple 的 Upcoming Requirements 页面写明,从 2026 年 4 月 28 日起,"Apps uploaded to App Store Connect must be built with Xcode 26 or later using an SDK for iOS 26, iPadOS 26, tvOS 26, visionOS 26, or watchOS 26."(上传到 App Store Connect 的 App 必须用 Xcode 26 或更高版本、iOS 26 等 26 系列 SDK 构建。)App Store Connect 帮助页「Upload builds」用表格写了同一条规则:
| 目标类型 | 构建所用 Xcode | 上传所用 Xcode |
|---|---|---|
| iOS App、iOS App 扩展、watchOS App 扩展 | Xcode 26 或更高 | Xcode 14 或更高 |
| macOS App | Xcode 6 或更高 | Xcode 14 或更高 |
| tvOS App | Xcode 26 或更高 | Xcode 14 或更高 |
| visionOS App | Xcode 26 或更高 | Xcode 15 或更高 |
下一步也已经公布。Apple 的「Submit your apps and games today」页面和 2026 年 9 月 9 日的新闻都说,从 2027 年 4 月起,iOS 和 iPadOS App 必须用 iOS & iPadOS 27 SDK 或更高版本构建(提交页面还加了一句"并以 iOS 15 或更高为目标"),tvOS、visionOS、watchOS App 也要用各自的 27 SDK。两个页面都没给出 4 月的具体日期。「太旧」这种情况和对应的错误码,见我们的 ITMS-90725 指南。
不是 Apple 已开放提交的版本。 在本文读过的页面里,Apple 没有写明用 beta 版 Xcode 构建的包能不能上传。它公开的是:
- Releases 页面给每个 Xcode 标明是正式版还是 beta,并附构建号。2026 年 11 月 1 日的列表:Xcode 27.2(27B52,正式版)、Xcode 27.1(27A9275,正式版)、Xcode 27.1 beta(27A9269)、Xcode 27(27A266a,正式版)。
- 新 SDK 可以提交时,Apple 会发新闻说明,并点名用哪个 Xcode。2026 年 9 月 9 日(「App Store submissions now open for the latest OS releases」):"Download the Xcode 27 Release Candidate. Build your apps and games using the latest SDKs, test with TestFlight, and submit for review to the App Store."(下载 Xcode 27 RC,用最新 SDK 构建,用 TestFlight 测试,然后提交审核。)
所以稳妥的做法是用那个页面上标为正式版的 Xcode,或者 Apple 自己的公告里明确说可以用来提交的 RC。用 beta 归档然后碰运气,Apple 的页面里找不到依据。
怎么修
- 先查清归档是哪个 Xcode 做的(见下一节)。修法取决于这个结果。Swift 与 Xcode 版本对照表列出了每个 Xcode 版本自带的 Swift 版本。
- 装一个正式版 Xcode。 从 Mac App Store 或 Apple 的发布页下载。注意你的 Mac 能不能跑:Apple 的 Xcode 支持页写着 Xcode 27、27.1、27.2 需要 macOS Tahoe 26.6 或更高,Xcode 26 到 26.3 支持 macOS Sequoia 15.6 到 Tahoe 26.x。
- 确认构建用的就是它。 如果 beta 和正式版并存,在终端或构建机上跑
xcode-select -p和xcodebuild -version,看实际用的开发者目录和版本。 - 重新归档并上传。 如果之前的上传已经到了 App Store Connect 但处理失败,Apple 的「Build upload statuses」页面说下次上传可以沿用同一个构建号。
- 顺便看一下最低系统版本。 Apple 的 Upcoming Requirements 页面写着,从 2026 年 9 月 9 日起,iOS 和 iPadOS App 必须以 iOS 13 或更高为目标。这和 SDK 规则是两回事。
每个 Xcode 带哪个 SDK、某个日期 Apple 要求什么,可以用 Xcode SDK 要求查询工具 查。
怎么检查:从构建出的 App 读出 Xcode 和 SDK
构建好的 App 里的 Info.plist 记录了工具链。归档里的位置是 Products/Applications/<App>.app/Info.plist;.ipa 解压后在 Payload/<App>.app/ 里。
APP="MyApp.xcarchive/Products/Applications/MyApp.app"
plutil -extract DTXcode raw -o - "$APP/Info.plist"
plutil -extract DTXcodeBuild raw -o - "$APP/Info.plist" # 和 Apple 发布页上的构建号对比
plutil -extract DTSDKName raw -o - "$APP/Info.plist"
plutil -extract DTPlatformVersion raw -o - "$APP/Info.plist"
plutil -extract <键> raw -o - 只输出一个值,二进制和 XML 格式的 plist 都能读。把 DTXcodeBuild 和 Apple 发布页上的构建号对一下:如果对上的是 beta,或者比最低要求的 Xcode 还旧,问题就找到了。用来核对命令本身:在装了 macOS 27 的 Mac 上,系统自带的计算器 App 读出来是 DTXcode 2700、DTXcodeBuild 27A200c。
Apple 的 Information Property List 参考文档里没有这些 DT 键的页面,所以 Apple 没有公开它们的确切格式。把它们当作"这个 App 是用什么构建的"的记录来看,不要手改:改了也不会改变代码实际编译时用的 SDK。
常见问题
用 beta 版 Xcode 构建的包能传到 TestFlight 吗?
本文读过的 Apple 页面没说。「Upload builds」页面说它列出的 Xcode 版本适用于"for customer distribution or to testers using TestFlight"(面向用户发布或给 TestFlight 测试员),而 Apple 2026 年 9 月 9 日的新闻点名用 RC 来做 TestFlight 测试和提交。请用正式版或 Apple 公告过的 RC。
RC(Release Candidate)版本能提交吗?
Xcode 27 可以:Apple 2026 年 9 月 9 日的新闻让开发者下载 Xcode 27 RC 并用它提交审核。Apple 是每个版本单独在新闻里说明的,所以用哪个版本就查哪一篇。
新 Xcode 已经装了,上传还是被拒,为什么?
归档很可能是另一份 Xcode 做的,常见的是 xcode-select 还指向 beta,或者构建服务器上还是旧 Xcode。构建出的 App 里的 DTXcodeBuild 会告诉你是哪一个。
2027 年 4 月的规则是不是意味着现在就得用 Xcode 27?
不是。Xcode 26 满足现行规则。从 2027 年 4 月起,Apple 的页面说 iOS 和 iPadOS App 需要 iOS & iPadOS 27 SDK 或更高,这个 SDK 随 Xcode 27 提供。
这些规则对 Mac App 适用吗?
「Upload builds」表格里,macOS App 是用 Xcode 6 或更高构建、Xcode 14 或更高上传。Upcoming Requirements 页面没有 macOS SDK 的最低要求。
参考资料
均于 2026 年 11 月 1 日阅读。
- Upcoming Requirements,Apple Developer News
- Submit your apps and games today,Apple Developer
- App Store submissions now open for the latest OS releases,Apple Developer News,2026 年 9 月 9 日
- Releases,Apple Developer News
- Xcode Release Notes(Xcode 27、27.1、27.2 发布说明),Apple Developer Documentation
- SDKs and system requirements,Apple Developer
- Upload builds,App Store Connect 帮助
- Build upload statuses,App Store Connect 帮助
Apple 的要求和日期会变化,具体以上面这些页面的当前内容为准。