在Xcode 11 上使用模拟器编译运行不会出任何错误,升级到Xcode 12使用模拟器ipone 11 编译居然失败,真机却正常。报错如下:
YBNetwork框架下的AFHTTPSessionManager.h文件找不到,切换成真机再次编译,错误消失!!!
查阅Xcode 12 升级文档:
大概意思如下
1、Xcode11 项目中模拟器会编译为x86_64,但Xcode12的模拟器基于苹果Apple Silicon architecture执行,需要编译为arm64运行在模拟器上。许多第三方库(如Firebase,AFNetworking等)并未提供Xcode12版本的更新支持,导致报错。
2、Xcode12 开始移除编译设置(Bulid Settings)中的 Valid Architectures的宏定义。当项目使用Xcode12打开时候,会在User-Defines(项目的Bulid Settings里面)中自动生成VALID_ARCHS宏定义。如果旧项目存在于此冲突的宏定义,会导致编译失败。
解决办法:
Build setting中搜索VARID_ARCHS
把VALID_ARCHS整个删除。
重新编译,成功!!