更新:
升级M1后出现:
building for iOS Simulator, but linking in object file built for iOS
查了一堆资料后发现这些方案针对M1都无效(有说排除arm64编译选项的,有说添加valid_archs指令集的)。
真正解决方案如下:
使用rossetta2运行XCode!!!!
如果不知道怎么运行的:退出xcode->打开finder -> 进入application右键xcode -> 显示简介 -> 勾选使用rossetta2 -> 重启xcode
这个点其实很奇怪,明明m1就是arm芯片,结果模拟器还需要使用x86运行,估计还没完全适配好,是xcode的bug(猜测)。
以下为intel芯片原始答案:
iOS14模拟器编译失败解决方案
升级XCode12后,模拟器突然就编译报错了,如下:
No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=arm64 armv7).
查了一下网上的问题描述,都比较古老,不适用
真正的解决方案是:去掉主工程(附属工程不用管)的build setting下面的 VALID_ARCHS
就是在build setting下, user-defined的valid_archs,整个删掉(如果不行就把附属工程的也删掉)
删除后重新编译即可,注意去掉主工程的就行了
ps: 如果run script下有做framework合并(debug+release)的,记得也要把脚本注释掉
从xcode12开始,模拟器也是arm64核心了
ps: 修正一下, 如果去掉后还是不行, 附属工程的编译标记也要去掉.