Xcode 5.1 - 没有要编译的体系结构(ONLY_ACTIVE_ARCH = YES,活动arch = x86_64,VALID_ARCHS = i386)

 Yao2502880171 发布于 2023-01-18 17:48

更新到Xcode 5.1后,我无法再为64位模拟器构建项目,收到此错误:

 No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386).

这些是我的目标构建设置:

Xcode目标构建设置

我尝试将"Build Active Architecture"更改为No,并将"i386"添加到"Valid Architectures",但遗憾的是两者都没有.谢谢你的任何建议!

8 个回答
  • 升级到XCode 5.1后,我收到了同样的错误消息.你在使用CocoaPods吗?如果是这样,这应该解决问题:

      从Xcode左窗格中的工作区中删除"Pods"项目并关闭Xcode.

      从命令行运行"pod install"以重新创建"Pods"项目.

      重新打开Xcode并确保"Pods"项目和您自己的项目的构建设置中的"Build Active Architecture Only"设置为"No".

      清洁和建造.

    2023-01-18 17:49 回答
  • 添加arm64到目标valid architectures.看起来它也x86-64为模拟器有效的架构添加了架构.

    2023-01-18 17:49 回答
  • 你需要做的只是设置ONLY_ACTIVE_ARCHNO(至少适合我).下面是它的截图:


    编辑:

    据我所知(如果出现问题,请指出它,谢谢),如果设置ONLY_ACTIVE_ARCHYES,则表示Xcode仅针对活动架构(指当前在Xcode中处于活动状态的设备)构建.似乎Xcode的默认设置是Debug to 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_ARCHNO"有效呢?因为设备仍然可以运行为您添加的所有体系结构构建的二进制文件(传递构建),但会丢失一些性能.这只是一个快速的解决方案,但不是最好的.


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

    2023-01-18 17:49 回答
  • 如果您正在使用CocoaPods,最可能的问题是因为您的Pods项目Build Build Architecture for Build Active设置为Yes for Debug.

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

    同样,对您的应用程序项目更改为" ".

    2023-01-18 17:49 回答
  • 添加:架构:$(ARCHS_STANDARD_INCLUDING_64_BIT)

    有效的架构:arm64 armv7 armv7s

    2023-01-18 17:51 回答
  • 为避免每次运行时"pod install"重置only_active_arch进行调试,您可以将以下内容添加到pod文件中

    # Append to your Podfile
    post_install do |installer_representation|
        installer_representation.project.targets.each do |target|
            target.build_configurations.each do |config|
                config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
            end
        end
    end
    

    2023-01-18 17:51 回答
  • 我有类似的问题.通过在项目的构建设置中将"架构"更改为" $(ARCHS_STANDARD_32_BIT) " 来解决它.

    现在,您必须选择标准体系结构(armv7,arm64) - $(ARCHS_STANDARD),因为Apple建议在64位体系结构上构建应用程序.单击:Apple文档

    2023-01-18 17:52 回答
  • 为了以防万一,尽管仍然遇到上述问题仍然遇到问题,请检查您运行的模拟器是否也是受支持的模拟器.我有我的指定arm7和arm7s但是试图在64位模拟器上运行应用程序.

    2023-01-18 17:52 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有