"警告:iPhone应用程序应包含armv6架构",即使使用构建配置集也是如此

Nic*_*ick 330 xcode ios

我已经有一段时间不得不调整项目构建设置了.升级到最近的SDK后,我无法构建我的ad hoc分发配置.

Build生成此警告和错误:

警告:iPhone应用程序应包含armv6架构(当前ARCHS ="armv7")

iPhone/iPod Touch:应用程序可执行文件缺少必需的体系结构.必须至少存在以下架构之一:armv6(-19033)

但是在我的项目中我认为我的设置正确:

  • 架构是:标准(armv6 armv7)
  • 基础SDK:最新的iOS(目前设置为iOS 4.2)
  • 有效的架构:armv6 armv7

替代文字

我清理了所有目标.

我很感激任何提示.

Nic*_*ick 417

如果使用Xcode 4.2或更高版本,请尝试以下操作:

  1. 单击项目名称(在左列中),然后单击目标:

    在此输入图像描述

  2. 单击"构建设置"选项卡(在右栏中):

    在此输入图像描述

  3. 点击"架构"下的"发布"或"发布"行,然后选择"其他...":

    在此输入图像描述

  4. 双击出现的弹出框中名为"$(ARCHS_STANDARD_32_BIT)"的突出显示的行,并通过键入"armv6"替换它.然后使用popover左下角的加号按钮添加一个新行,并键入"armv7",然后单击"完成":

    在此输入图像描述

更新:你应该添加armv7s来定位iPhone 5.(如果使用Xcode 4.5或更高版本构建,则放下armv6,不再支持armv6.)

而已.您现在应该能够构建/存档而不会产生错误.

如果它仍然不起作用,请参阅justinxreese的这个答案,建议在info.plist文件的"Required Device Capabilities"下添加armv6和armv7的条目.

  • 我没有在架构下的分发行,而是我有"Release"行.不知道怎么做 (7认同)
  • 是的,看起来Apple正在远离ARM6,所以这似乎是Xcode 4.2的必要步骤.奇怪的是,提交过程仍然需要ARM6构建,即使4.2现在已公开... (3认同)
  • @ Let'sSpotIt只需将armv6和armv7添加到Release行.我的截图中的项目是从早期版本的Xcode导入的,因此具有不同的架构名称. (2认同)
  • 谢谢尼克.此外,在Xcode 4.2中创建的新项目可能需要更改其info.plist文件以支持armv6设备.请参阅下面的其他答案. (2认同)

Bri*_*ian 62

如果取消选中"仅构建活动体系结构",则它将构建所有有效体系结构.

更新:从Xcode 4开始不再适用 - 遵循Nick关于Xcode 4及更高版本的说明.

  • 通过在Debug版本中设置为YES,在Release版本上设置No,可以加快构建时间. (11认同)

jus*_*ese 59

即使按照接受的答案后我发现了以下问题:

在Info.plist中,添加"必需设备功能"条目.这应该是一个数组,将有两个条目.

  • 第0项:armv6
  • 第1项:armv7

它看起来像这样:

所需的设备功能输入


Mat*_*tyG 26

除了Nick关于Xcode 4.2的回答之外,您可能还需要查看info.plist文件.似乎默认情况下在Xcode 4.2中启动的新项目在"必需的设备功能"中指定了"armv7".如果想要支持运行armv6的设备(例如iPhone 3G),则需要删除它.

在此输入图像描述

从您的ProjectName-Info.plist中的'Required device capabilities'中删除armv7


小智 21

ios 6更新

适用于ios 6的Xcode 4.5.x的变化

  1. Xcode 4.5.x(及更高版本)不支持生成armv6二进制文件.
  2. 现在包括iPhone 5/armv7s支持.
  3. Xcode 4.5.x或更高版本支持的最低部署目标是iOS 4.3.


Tom*_*aid 6

我也有这个问题.我只是将我的部署目标设置为4.3并且只保留了armv7架构并且它工​​作正常.几乎每个人都有5,所以4.3很好.