Xcode 9.2提示‘Named color do not work prior to iOS 11.0’,iOS11.1.1设备异常求助
嘿,我之前也碰到过一模一样的问题——明明测试设备系统是iOS11+,Xcode却还是弹这个警告,其实核心原因和你的设备系统无关,主要是项目的部署配置出了问题,给你几个快速排查的方案:
检查项目全局部署目标
打开你的项目,选中TARGETS里的主应用目标,切换到「General」标签页,找到「Deployment Info」区域,确保「iOS Deployment Target」设置为iOS 11.0或更高版本。Xcode的这个警告是针对项目支持的最低系统版本,而非你当前测试设备的版本——哪怕你用的是iOS15,只要部署目标设成iOS10,就会弹这个提示。检查单个Storyboard/XIB的部署设置
有时候全局部署目标是对的,但个别Storyboard/XIB的设置没跟上。选中你的Storyboard或XIB文件,打开右侧的「File Inspector」,找到「Interface Builder Document」下的「Builds for」选项,确认它的设置和项目全局部署目标一致(或者直接选「iOS 11.0 or later」)。代码层面的兼容处理(如果需要支持低版本)
如果你项目确实需要兼容iOS10及以下,那在代码中使用命名颜色时要加版本判断,避免崩溃:func getCustomColor() -> UIColor { if #available(iOS 11.0, *) { return UIColor(named: "YourCustomColor") ?? .black // 加默认值避免nil崩溃 } else { // 用RGB/十六进制等方式创建备用颜色 return UIColor(red: 0x33/255.0, green: 0x66/255.0, blue: 0x99/255.0, alpha: 1.0) } }不过你的情况设备是iOS11.1.1,所以这个步骤可能不需要,重点还是前面两个配置问题。
清理Xcode缓存重启
有时候Xcode的缓存会导致奇怪的警告,试试按下Cmd+Shift+Option+K清理Build Folder,然后重启Xcode,再重新编译项目,很多玄学问题都能这么解决。
一般来说,调整部署目标到iOS11.0以上之后,这个警告就会消失啦!
内容的提问来源于stack exchange,提问作者Sudhanshu.B

