遇到 ITMS-90725,就用包含当前要求 SDK 的 Xcode 重新归档,再上传新构建。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 的应用必须用 Xcode 26 或更新版本、以 iOS 26、iPadOS 26、tvOS 26、visionOS 26 或 watchOS 26 的 SDK 构建。)这个报错不需要改代码,要换的是构建工具。
报错原文
报错里会写出你的构建用了哪个 SDK,以及 Apple 接受的最低版本。下面这版是 2023 年 3 月开发者在 Apple Developer Forums 的 ITMS-90725 帖子里贴的:
ITMS-90725: SDK Version Issue - This app was built with the iOS 15.5 SDK. Starting
April 2023, all iOS apps submitted to the App Store must be built with the iOS 16.1 SDK
or later, included in Xcode 14.1 or later.
帖子里一位 Apple 的 App Store Connect 工程师说明,早先的报错写错了要求,后来已更正成上面这段。报错里的 SDK 和 Xcode 版本号跟着当时的规则走,你收到的会是更新的数字。Apple 没有公开 ITMS 代码列表。
为什么会出现
每个 SDK 都随某个 Xcode 版本发布,而 Apple 会在公布的日期提高上传所需的最低 SDK。Upcoming Requirements 页面上的历次规则如下(2025 年那一条取自该页面的存档,现在的页面已不再列出):
| 起始时间 | Apple 的原话要求 |
|---|---|
| 2023 年 4 月 25 日 | iOS 和 iPadOS 应用:Xcode 14.1 和 iOS 16.1 SDK 或更新;watchOS 应用:Xcode 14.1 和 watchOS 9.1 SDK 或更新 |
| 2024 年 4 月 29 日 | Xcode 15,对应 iOS 17、iPadOS 17、tvOS 17 或 watchOS 10 |
| 2025 年 4 月 24 日 | Xcode 16 或更新,使用 iOS 18、iPadOS 18、tvOS 18、visionOS 2 或 watchOS 11 的 SDK |
| 2026 年 4 月 28 日 | Xcode 26 或更新,使用 iOS 26、iPadOS 26、tvOS 26、visionOS 26 或 watchOS 26 的 SDK |
| 2027 年 4 月(已公布) | iOS 和 iPadOS 应用要用 iOS 27 & iPadOS 27 SDK 或更新;tvOS、visionOS、watchOS 应用要用各自的 27 SDK 或更新 |
2027 年 4 月这条出自 Apple 2026 年 9 月 9 日的新闻 App Store submissions now open for the latest OS releases。
所以去年春天还能顺利上传的构建,今年可能就被拒,而项目本身什么都没改。常见原因是 Mac 上选中的还是旧版 Xcode,或者 CI 机器、云端构建镜像还停在旧版。现行规则点名了 iOS、iPadOS、tvOS、visionOS 和 watchOS,没有提到 macOS。
怎么修
- 安装当前的 Xcode。 Xcode 26 或更新版本满足 2026 年 4 月的规则。Apple 的 Xcode 支持页列出了每个版本对 Mac 的要求:Xcode 26 需要 macOS Sequoia 15.6 或更新。Swift 与 Xcode 版本对照表列出了每个 Xcode 版本自带的 Swift 版本。
- 确认用的就是这个 Xcode。 命令行里
xcode-select -p会打印当前选中的开发者目录;如果指向旧版,用sudo xcode-select -s /Applications/Xcode.app切换。CI 上要在工作流里指定 Xcode 版本,光改自己电脑没用。 - 重新归档,换一个新的 build 号上传。
- 顺便看看下一条上传规则。 换到更新的 SDK 可能带来新检查。比如用 iOS 27 SDK 或更新版本构建的应用必须配置启动屏,否则上传会报 ITMS-90870。
用新 SDK 构建,并不意味着要放弃旧版 iOS。Apple 支持页写明 Xcode 26 可以部署到 iOS 15 至 26。另有一条规则:自 2026 年 9 月 9 日起,上传到 App Store Connect 的 iOS 和 iPadOS 应用必须以 iOS 13 或更新为目标。
上传前怎么查
下面的命令能看出当前选中的 Xcode 用哪个 SDK 构建。在我们的 Mac 上(选中 Xcode 27.1):
xcodebuild -version # Xcode 27.1, Build version 27A9275
xcrun --sdk iphoneos --show-sdk-version # 27.1
注意,不带 --sdk 的 xcrun --show-sdk-version 显示的是 macOS SDK(这里是 27.0),不是 iOS 的。
要检查已经做好的构建,就读 Xcode 写进构建后 Info.plist 的 SDK 信息:
plutil -extract DTSDKName raw "MyApp.app/Info.plist" # iphoneos27.1
plutil -extract DTXcode raw "MyApp.app/Info.plist" # 2710
我们在一个新做的 Release 构建和一个旧归档上都跑过,旧归档显示 iphoneos26.5 和 2650(Xcode 26.5),两者都满足 2026 年 4 月的规则。
Xcode 与 SDK 上传要求查询输入一个 Xcode 版本,就会按平台告诉你它的 SDK 是否满足当前上传规则,并附上日期和对应的 Apple 公告。Info.plist 检查工具能从构建后的 Info.plist 读出 SDK 版本,ITMS 报错查询会解释粘贴进来的邮件里每个 ITMS 代码。
常见问题
现在上传 App Store Connect 需要哪个版本的 Xcode?
按 Apple Upcoming Requirements 页面,自 2026 年 4 月 28 日起,需要 Xcode 26 或更新版本,并使用 iOS 26、iPadOS 26、tvOS 26、visionOS 26 或 watchOS 26 的 SDK。
一定要提高最低支持的 iOS 版本吗?
这个报错不需要。Apple 写明 Xcode 26 可以部署到 iOS 15 至 26。另有一条 2026 年 9 月 9 日起生效的规则,要求 iOS 和 iPadOS 应用以 iOS 13 或更新为目标。
Mac 上已经装了新 Xcode,为什么上传还是失败?
查一下实际做归档的是哪个 Xcode:构建机上的 xcode-select -p、CI 里设定的 Xcode 版本,以及构建后 Info.plist 里的 DTSDKName。
ITMS-90725 对 Mac 应用也适用吗?
现行公告点名的是 iOS、iPadOS、tvOS、visionOS 和 watchOS 的 SDK,没有提到 macOS。我们没在页面上找到对应的 macOS 规则,依赖这一点之前请自己再看一遍页面。
明年还会遇到这个报错吗?
Apple 已经公布了下一步:从 2027 年 4 月起,iOS 和 iPadOS 应用要用 iOS 27 & iPadOS 27 SDK 或更新版本构建,tvOS、visionOS、watchOS 应用要用各自的 27 SDK。到时用 Xcode 26 做的构建就不够新了。
参考资料
- Upcoming Requirements,Apple Developer News
- App Store submissions now open for the latest OS releases,Apple Developer News,2026 年 9 月 9 日
- Xcode 支持:最低要求和支持的 SDK,Apple Developer
- ITMS-90725 帖子,Apple Developer Forums