XCode 12 跑模拟器编译报错building for iOS Simulator, but linking in object file built for iOS, xxxx for architecture arm64

爱分享 IOS 2020-10-18 21 次浏览 没有评论

今天爱分享给大家带来XCode 12 跑模拟器编译报错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 12以前,我们通过Valid Architectures 来配置支持的机型。

(我们项目对5s以前的armv7 armv7s 机型不做机型支持,就没有这两项。可根据具体项目支持机型配置。)

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

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

pod 库如果有设置也对应添加x86_64

注:在生成上线的时候需要把x84_64去掉即可。

解决方案2:
提出来pod 库 注释掉 config.build_settings[‘VALID_ARCHS’] = ‘arm64 arm64e’ 这行代码。

并且清空build settings->VALID_ARCHS里面的内容即可。

解决方案3:
通过设置Exclude Architectures->Debug为arm64也可以解决这个问题。 具体的方案可见评论区。

原因:
在XCode11中 x86_64的机型支持是默认添加上的,就算不写也支持,但XCode12的时候 苹果推出了arm主机的Mac, 这使得arm主机的XCode其实就不需要x86_64的默认支持了。 这个时候x86_64也就不是默认添加,需要手动添加上才能在Mac上跑得动模拟器。

发表评论

回顶部