You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已将项目最低版本设为iOS14仍遇StateObject版本兼容报错求助

解决‘StateObject' is only available in iOS 14.0 or newer’报错的方案

检查项目与Target的部署版本

  • 确认项目级部署目标:在Xcode中选中项目根目录,进入Info标签页,查看iOS Deployment Target是否确实设置为iOS14.0或更高版本
  • 检查每个Target的部署目标:逐个查看App主Target、扩展Target(如果有)的Build Settings,确保iOS Deployment Target与项目设置一致

更新Podfile的部署版本设置

  • 打开Podfile,确认顶部的平台版本指定正确:
    platform :ios, '14.0'
    
  • 若修改过Podfile,执行pod install重新安装依赖,确保所有Pods的Target部署版本同步更新

清理Xcode缓存并重建项目

  • 使用Cmd+Shift+K清理项目缓存,再用Cmd+Shift+Option+K清理构建文件夹
  • 关闭Xcode,删除项目对应的DerivedData文件夹(路径通常为~/Library/Developer/Xcode/DerivedData/[项目名]-随机字符串)
  • 重新打开Xcode,执行Cmd+B重新构建项目

检查代码中的版本条件编译逻辑

  • 全局搜索项目中StateObject的使用,确认是否存在错误的版本判断:比如误用if #available(iOS 15.0, *)包裹StateObject代码,或者在针对iOS14以下版本的代码分支中使用了StateObject
  • 若项目最低部署版本已设为iOS14+,则无需为StateObject添加版本判断,移除多余的条件包裹即可

验证Pods依赖的部署版本

  • 部分第三方库可能自身指定了较低的部署版本,导致编译冲突。执行pod deintegrate完全移除现有Pods,再执行pod install重新安装,确保依赖跟随项目的部署版本设置
  • 进入Xcode的Pods项目,检查每个库的Build Settings,确认它们的iOS Deployment Target不低于项目设置的版本

检查Swift版本配置

  • StateObject需要Swift5.1及以上版本支持(对应Xcode11及以上)。进入项目和Target的Build Settings,找到Swift Language Version,确认版本符合要求

内容的提问来源于stack exchange,提问作者Oleg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 16:01:17