“警告:iPhone应用程序应该包括一个armv6体系结构”,即使构buildconfiguration集

已经有一段时间了,因为我不得不调整项目构build设置。 在升级到最近的SDK之后,我在构buildad hoc分发configuration时遇到了问题。

构build生成此警告和错误:

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

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

但在我的项目中,我认为我已经正确设置了一些东西:

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

替代文字

我清理了所有的目标。

我感谢任何提示。

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

  1. 点击您的项目名称(在左栏),然后是目标:

    在这里输入图像描述

  2. 点击“Build Settings”标签(在右栏中):

    在这里输入图像描述

  3. 点击“架构”下的“发布”或“发布”行,然后select“其他…”:

    在这里输入图像描述

  4. 双击出现的popup框中名为“$(ARCHS_STANDARD_32_BIT)”的突出显示的行,并通过键入“armv6”来replace它。 然后在popup窗口的左下angular添加一个带有加号button的新行,然后input'armv7',然后单击完成:

    在这里输入图像描述

更新:你应该添加armv7s以定位iPhone 5。 (如果使用Xcode 4.5或更高版本构build,则放置armv6,这将不再支持armv6。)

而已。 你现在应该能够build立/存档而不会产生错误。

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

如果您取消选中“仅构build主动架构”,则将构build所有有效的架构。

更新 :这不再适用于Xcode 4 – 按照Nick对Xcode 4及更高版本的说明进行操作。

即使按照接受的答案,我也有这个问题,发现以下工作:

在您的Info.plist中,添加一个条目用于必需的设备function。 这应该是一个数组,并将有两个条目。

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

它看起来像这样:

所需的设备功能条目

除了Nick关于Xcode 4.2的回答之外,您可能还需要查看您的info.plist文件。 看起来,如果在Xcode 4.2中启动的新项目默认在“必需的设备function”中指定了“armv7”。 如果你想支持运行armv6的设备(例如iPhone 3G),你需要删除它。

在这里输入图像描述

在您的ProjectName-Info.plist中从“必需的设备function”中删除armv7

一个iOS 6更新

Xcode 4.5.x for iOS 6的变化

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

我也有这个问题。 我只是将我的部署目标设置为4.3,只留下了armv7架构,它的工作。 在几乎每个人都有5点,所以4.3是好的。

对我来说,它不适用于每一个答案。 但是我尝试了TARGETS> Architectures> Debug,并用加号button添加一个新行,然后input'armv6'(out)',然后点击Done。

最后是CMD + B,然后右键点击PrjectName.app(在Products文件夹中)>在Finder中打开>压缩“PROJECT_NAME.APP”(在Debug-iphoneos中)>上传到AppStore

在这里输入图像描述

这是我的屏幕设置。 在这里输入图像描述

如果你有包括项目,请configuration一切。 希望你的帮助。

在尝试了这些答案的混合后,我终于偶然发现了它的工作。 我现在对苹果很生气。 又过了一个小时,他们让我浪费了。 这是我的configuration。

在这里输入图像描述

我尝试了上面所有的答案,没有解决我的问题。 所以我创build一个新的项目,并逐个比较构build设置。 只有“备用权限文件”是不同的。 项目构build失败的值为armv7。 删除它,然后清理 – >build立 – >归档。 成功! 希望能解决你的问题

哇,我每6个月更新/提交一次应用程序。 每当我这样做,我必须学习“新”的方式来做到这一点…

运行iOS 5.1和Xcode 4.3.2时遇到同样的问题

感谢post! 我花了一段时间更新所有的项目设置为armv6,armv7,但没有喜悦。 当我将“只build立活动架构”设置为“否”时,出现关于将两个对象放在同一目录中的构build错误。

幸运的是,我注意到你们正在修改目标版本设置。 这是什么最终工作(armv6,armv7,并设置“build立只有活动架构”否目标构build设置下)。 作为一个免责声明,我已经在项目设置中将所有架构都设置为armv6,armv7。

无论如何,感谢你的帮助,布伦特

我必须确保在xCode 4.3.2的目标和项目设置中更改这些设置,然后在我能够提交我的应用程序的任何地方将其设置为为armv6和armv7构build。

为了安全起见,我还退出了xCode之间的变化和做一个干净的,build立,存档周期。

在Snow Leopard上使用Xcode 4.2,我使用下面的设置来构build一个在armv6(Iphone 3G和更低版本)和armv7(包括3GS在内的所有比3G更新)的应用程序。

架构:armv6和armv7(已删除$(ARCHS_STANDARD_32_BIT))
只build立主动架构:不
所需的设备function:armv6

不要把armv7放在所需的设备能力,如果你想应用程序运行3G和更低。

对我来说也是一个痛苦的问题。 花了大约一个小时试图build立和重build – 没有喜悦。 最后我必须这样做:

  1. 将基础SDK升级到最新(在我的情况下是iOS 5)
  2. 重新启动xCode
  3. 清洁和build设
  4. 有效!

我猜这是关于arm6,arm7的一些行话,因为看起来我的项目对两者都是有效的,至less这些设置似乎是这样说的),我的猜测是这是一个愤世嫉俗的方式,用技术来诅咒我们,不明白,所以我们只是采取简单的select,并瞄准最新的iOS(苹果与更多的人是最新的)。

这里是苹果的文档:

技术问答QA1760

它说有两件事你必须正确的做到:

  1. armv6添加到架构构build设置
  2. 仅将Build Active Architecture设置为No

如果这仍然不能帮助你,请仔细检查你是否正在改变正确的构buildconfiguration的架构构build设置 – 我浪费了半个小时摆弄错误的一个,并想知道为什么它不工作…

在“产品”菜单中select“ Edit Scheme... ”,单击左侧列表中的“存档”scheme,然后选中“构buildconfiguration”。 如果它不是你所期望的那么改变这个值。

注意; 我必须为我的基础项目和我的应用程序中embedded的PhoneGap .xcodeproj文件执行这些步骤。

是的,我embeddedPhoneGap; 他们经常更新,而且我还不到两个月的时间就知道这个function已经贬值了。

尝试将部署目标更改为比armv6处理器更高的内容。 xCode的设置引用操作系统级别,例如:iOS版本号{3.1,3.2,4.0,4.1,4.2,4.3,5.0,5.1}

(i)您可以在构build设置选项卡或摘要选项卡中进行设置。 从项目导航器中窗口的左上angular开始,列出其中的所有文件。 点击最上面那个有蓝色图标的。

(ii)如果您打算使用通过openGL ES 2.0 API访问和控制的可编程着色器线路电路,那么您应该将您的“部署版本”设置为大约4.3,我相信这仅适用于诸如3GS或更新。 xCode报告说需要iOS 4.2.5或更高版本运行armv7代码。 而且我相信,这款处理器再一次从3GS开始。*目前iOS 4.3似乎是我的select。

http://theiphonewiki.com/wiki/index.php?title=Armv7

http://en.wikipedia.org/wiki/List_of_iOS_devices

如果xCode不断抱怨armv7,请确保断开任何连接设备(特别是iPhone 5 !!)并重试。 花了我几个小时的时间来找出那条小小的信息。