使用Xcode 8.x上传应用遇ITMS-90725警告,需升级Swift及SDK吗?
关于ITMS-90725警告与Swift 2.X项目的处理建议
嘿,我来帮你理清楚这个问题——其实你不用立刻把整个项目全转成Swift 4.X,但有个关键要求必须满足,咱们一步步拆解:
先搞懂警告的核心要求
首先看苹果的警告内容:
WARNING ITMS-90725: "SDK Version Issue. In July 2018, iOS app updates submitted to the App Store will need to be built with the iOS '11.0' SDK or later, included in Xcode [9.0] or later. Make sure to update Xcode for future app deliveries."
这个警告的重点是构建应用时必须使用iOS 11.0及以上版本的SDK,对应的Xcode版本是9.0或更高——这和你用的Swift版本没有强制绑定,也就是说,你不一定非要把Swift 2.X升级到4.X才能满足苹果的上传要求。
Xcode 9+对Swift 2.X的支持情况
- Xcode 9虽然默认主推Swift 3和4,但仍然保留了对Swift 2.3的编译支持。你只需要在项目的
Build Settings里找到Swift Language Version,把它设置为Swift 2.3,就能在Xcode 9上正常编译你的Swift 2.X代码。 - 注意:Xcode 10及之后的版本就彻底放弃了对Swift 2.X的支持,如果你的项目需要长期维护,长远来看还是得升级Swift版本,但至少在满足当前苹果上传要求的阶段,可以先缓一缓全量升级的工作。
第三方SDK/库的兼容问题
你不需要更新所有SDK,只需要确保项目里用到的第三方库能兼容Xcode 9+和iOS 11 SDK:
- 对于Objective-C模块,基本不用操心,Xcode 9+对OC的兼容性非常好,OC代码可以和任意版本的Swift代码无缝共存。
- 如果有些旧的Swift第三方库不兼容Xcode 9,你需要去找它们的更新版本,或者替换成支持Xcode 9的替代库。
长远维护的建议
如果你的项目需要长期迭代,还是建议逐步迁移到Swift 4.X(或更高版本),可以按以下步骤来降低迁移成本:
- 先把Xcode升级到9.x,将项目的Swift版本设置为2.3,先解决编译和运行时的兼容性问题(比如iOS 11的API变化)。
- 利用Xcode的自动转换工具(
Edit > Convert > To Current Swift Syntax...),分模块将Swift代码从2.3逐步转换到3,再升级到4.X。转换后一定要手动检查细节,比如一些API的废弃、语法变化导致的逻辑问题。 - 保持OC和Swift混编的桥接文件配置正确,Xcode 9+对混编的支持已经很成熟,不会有太大问题。
内容的提问来源于stack exchange,提问作者MAhipal Singh
相关产品推荐
相关产品推荐

