关于适配XCode 12 跑模拟器编译报错的错误
2020-09-22 本文已影响0人
liaoworkinn
报错内容:building for iOS Simulator, but linking in object file built for iOS, xxxx for architecture arm64
项目再迁移到XCode12 的时候跑模拟器遇到了下面这个报错。真机没有问题

在Stack Overflow: xcode-12-building-for-ios-simulator-but-linking-in-object-file-built-for-ios上查大多数都给出了在build settings->excluded architectures 中添加arm64架构的解决方案,但这个对于我们的项目没有用。
在XCode 11中,我们通过Valid Architectures 来配置支持的机型。

但在XCode12中, Valid Architectures 这一项被移除掉了,改变成了 VALID_ARCHS的栏目。

解决方案:
在 VALID_ARCHS 添加上 x86_64的模拟器机型配置
如图:

原因:
在XCode11中 x86_64的机型支持是默认添加上的,就算不写也支持,但XCode12的时候 苹果推出了arm主机的Mac, 这使得arm主机的XCode其实就不需要x86_64的默认支持了。 这个时候x86_64也就不是默认添加,需要手动添加上才能在Mac上跑得动模拟器。
感悟:
解决这个问题大概花了大半天时间,跟着Stack Overflow 和 苹果论坛的解决方案找了很多弯路。 可能静下心想想或者试一下自己也能找到问题的原因。