更新:
升級(jí)M1后出現(xiàn):
building for iOS Simulator, but linking in object file built for iOS
查了一堆資料后發(fā)現(xiàn)這些方案針對M1都無效(有說排除arm64編譯選項(xiàng)的辉阶,有說添加valid_archs指令集的)。
真正解決方案如下:
使用rossetta2運(yùn)行XCode!!!!
如果不知道怎么運(yùn)行的:退出xcode->打開finder -> 進(jìn)入application右鍵xcode -> 顯示簡介 -> 勾選使用rossetta2 -> 重啟xcode
這個(gè)點(diǎn)其實(shí)很奇怪,明明m1就是arm芯片畸颅,結(jié)果模擬器還需要使用x86運(yùn)行,估計(jì)還沒完全適配好揉阎,是xcode的bug(猜測)执俩。
以下為intel芯片原始答案:
iOS14模擬器編譯失敗解決方案
升級(jí)XCode12后,模擬器突然就編譯報(bào)錯(cuò)了篱竭,如下:
No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=arm64 armv7).
查了一下網(wǎng)上的問題描述力图,都比較古老,不適用
真正的解決方案是:去掉主工程(附屬工程不用管)的build setting下面的 VALID_ARCHS
就是在build setting下掺逼, user-defined的valid_archs,整個(gè)刪掉(如果不行就把附屬工程的也刪掉)
刪除后重新編譯即可吃媒,注意去掉主工程的就行了
ps: 如果run script下有做framework合并(debug+release)的,記得也要把腳本注釋掉
從xcode12開始吕喘,模擬器也是arm64核心了
ps: 修正一下, 如果去掉后還是不行, 附屬工程的編譯標(biāo)記也要去掉.