升级Xcode后编译失败:RxSwift部署目标与iOS版本不兼容
这个报错的原因很明确:你的项目里,RxMoya(Moya的RxSwift扩展)编译时用的最低iOS版本是10.0,但它依赖的RxSwift已经把最低支持版本提升到了iOS 12.0,两者的部署目标要求冲突,导致编译失败。下面是一步步的解决方法:
统一Pod的部署目标配置
打开你的Podfile,先在文件顶部设置全局的最低iOS版本为12.0(和RxSwift要求一致),确保所有Pods都遵循这个配置:platform :ios, '12.0' target '你的App目标名称' do # 这里保留你原本的Pod依赖,比如: pod 'Moya' pod 'RxSwift' pod 'RxCocoa' end如果个别Pod有特殊版本要求,可以单独指定,但尽量保持全局一致,避免类似冲突。
彻底清理并重新安装Pods
先清理旧的Pod构建文件和缓存,避免残留的旧配置干扰:pod deintegrate pod clean rm -rf Podfile.lock然后更新Pod仓库并重新安装:
pod install --repo-update这一步会让所有Pods按照你指定的iOS 12.0目标重新编译,解决版本要求不匹配的问题。
同步项目本身的部署目标
打开Xcode,选中你的项目主目标,切换到General标签页,在Deployment Info里确认iOS Deployment Target也是iOS 12.0或更高版本,和Pods的配置保持统一。验证版本兼容性(可选)
如果你还是遇到问题,可以检查Moya和RxSwift的版本是否兼容。比如最新版的Moya通常要求RxSwift 6.x及以上,且最低支持iOS 12.0,确保你Podfile里的版本组合是官方推荐的兼容版本。
如果以上步骤都试过还是不行,建议删除Xcode的Derived Data:点击Xcode菜单栏的Xcode -> Preferences -> Locations,找到Derived Data的路径,删除对应的文件夹,然后重新构建项目。
内容的提问来源于stack exchange,提问作者Mohamed ALOUANE

