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).
解决办法:
“Targets->Build Settings->User-Defined->VALID_ARCHS”
找到Debug,加入 ‘i386 x86_64’ 加入后如下图:
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 |
参考文档:
本文地址:https://blog.csdn.net/zcl369369/article/details/108872063
上一篇: Maven的安装和配置与jdbc的封装
下一篇: ThreadLocal应用及原理