我已经有一段时间没有调整项目构建设置了。在升级到最近的SDK之后,我在构建我的临时分发配置时遇到了麻烦。

Build生成以下警告和错误:

警告:iPhone应用程序应该包含armv6架构(当前 arch = "armv7") iPhone/iPod Touch:应用程序可执行文件缺少一个必需的 体系结构。必须至少是以下架构中的一个 现在:armv6 (-19033)

然而,在我的项目中,我认为我的设置是正确的:

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

我已经清除了所有目标。

谢谢你的建议。


当前回答

如果您取消勾选“只构建活动架构”,那么它将构建所有有效的架构。

更新:这不再适用于Xcode 4 -遵循尼克的指示Xcode 4及以后。

其他回答

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

除了Nick关于Xcode 4.2的回答,你可能还需要查看你的信息。plist文件。似乎在Xcode 4.2中启动的新项目默认在“所需设备能力”中指定“armv7”。如果你想要支持运行armv6的设备(例如iPhone 3G),你需要删除这个选项。

在projectname - info .plist的“Required device capabilities”中删除armv7

在Snow Leopard上使用Xcode 4.2,我使用以下设置构建了一个在armv6 (Iphone 3G及以下)和armv7(包括3GS在内的所有更新的3G)上都能运行的应用程序。

架构:armv6和armv7(删除$(ARCHS_STANDARD_32_BIT)) 只构建活动体系结构:不需要设备功能: armv6

如果你想让应用程序在3G或更低的速度上运行,就不要把armv7放在必要的设备功能中。

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

为了安全起见,我还在进行更改和进行清洁、构建、归档循环之间退出了xCode。

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

(i)您可以在构建设置选项卡或摘要选项卡中设置。从Project Navigator窗口的左上角开始,其中列出了所有文件。点击最上面的蓝色图标。

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

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

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