为了账号安全,请及时绑定邮箱和手机立即绑定

Xcode 5.1-没有要编译的架构(ONLY_ACTIVE_ARCH = YES,

Xcode 5.1-没有要编译的架构(ONLY_ACTIVE_ARCH = YES,

iOS
小唯快跑啊 2019-11-23 13:12:42
更新到Xcode 5.1之后,我无法再为64位模拟器构建项目,收到此错误: No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386).这些是我的目标构建设置:Xcode目标构建设置我尝试将“构建活动体系结构”更改为“否”,并在“有效体系结构”中添加“ i386”,但不幸的是,这两个方法均无效。感谢您的任何建议!ios xcode xcode5.1
查看完整描述

3 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

您需要做的只是将其设置ONLY_ACTIVE_ARCH为NO(至少对我有用)。下面是它的屏幕截图:




编辑:

据我所知(请指出,如果有什么问题,谢谢),如果将其设置ONLY_ACTIVE_ARCH为YES,则意味着Xcode仅针对活动架构(这是指当前在Xcode中活动的设备)构建。似乎Xcode的默认设置将Debug设置为YES,因此当您只想为连接到Mac的特殊设备进行构建时,它不会为其他体系结构构建二进制文件。


构建失败的原因可能是该项目不支持您所连接设备的体系结构。因此,最好的解决方案是为您的设备添加正确的体系结构。以下是架构和支持的设备的列表:


ARMv8 / ARM64: ,iPhone 6,,iPhone 5siPad AirRetina iPad Mini

ARMv7s: ,,iPhone 5iPhone 5ciPad 4

的ARMv7: ,iPhone 3GS,iPhone 4,iPhone 4S,iPod 3G/4G/5G,iPad,,iPad 2iPad 3iPad Mini

ARMv6的:iPhone,iPhone 3G,iPod 1G/2G

那么,为什么“设置ONLY_ACTIVE_ARCH为NO”有效?因为设备仍然可以运行为您添加的所有体系结构构建的二进制文件(通过构建),但是会损失一些性能。这只是一个快速的解决方案,但不是最好的。


注意:添加的架构越多,生成的二进制文件越大。因此,为您的项目选择正确的体系结构是很好的。;)


查看完整回答
反对 回复 2019-11-23
?
墨色风雨

TA贡献1853条经验 获得超6个赞

如果您使用的是CocoaPods,则最可能的问题是因为Pods项目“ 用于构建活动架构的构建设置对于调试设置为“  ”。

解决方案很简单。将其更改为

同样,将您的应用程序项目更改为No。


查看完整回答
反对 回复 2019-11-23
  • 3 回答
  • 0 关注
  • 747 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信