欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Xcode12升级后在模拟器上编译错误

程序员文章站 2022-07-10 18:42:31
问题1:在模拟器中运行,会有如下错误提示:No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=arm64 armv7 armv7s).解决办法:“Targets->Build Settings->User-Defined->VALID_ARCHS”找到Debug,加入 ‘i386 x86_64’ 加入后如下图:......
问题1:在模拟器中运行,会有如下错误提示:

No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=arm64 armv7 armv7s).
Xcode12升级后在模拟器上编译错误

解决办法:

“Targets->Build Settings->User-Defined->VALID_ARCHS”
找到Debug,加入 ‘i386 x86_64’ 加入后如下图:
Xcode12升级后在模拟器上编译错误

VALID_ARCHS是指
编译后的包支持的cpu指令集集合。
模拟器默认使用的是Mac电脑的cpu,指令集即为x86_64(i386应该被淘汰了吧,不过还是写上吧)。所以在Debug环境下加入了‘i386 x86_64’。
真机没问题的原因是真机的cpu架构为armv7s、arm64、arm64e等。已经写上了,故没有问题。
至于为什么Xcode11之前编译没问题,猜测是Xcode11之前的编译器默认加入了‘i386 x86_64’指令集。

下面表格为常用的CPU指令集

CPU的不同指令集 对应设备
i386 模拟器32位处理器
x86_64 模拟器64位处理器
armv7 iPhone 3GS,iPhone4,iPhone 4s,iPad,iPad2,iPad3(The New iPad),iPad mini,iPod Touch 3G,iPod Touch4
armv7s iPhone5, iPhone5C,iPad4,iPod5
arm64 iPhone5s,iPhone6、7、8,iPhone6、7、8 Plus,iPhone X,iPad Air,iPad mini2(iPad mini with Retina Display)
arm64e XS/XS Max/XR/ iPhone 11, iPhone 11 pro

参考文档:

  1. https://blog.csdn.net/zgpeace/article/details/104290302.

本文地址:https://blog.csdn.net/zcl369369/article/details/108872063