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

Build生成以下警告和错误:

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

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

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

我已经清除了所有目标。

谢谢你的建议。


当前回答

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

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

其他回答

即使遵循公认的答案,我也有这个问题,并发现以下工作:

在你的信息。plist,为Required Device Capabilities添加一个条目。这应该是一个数组,将有两个条目。

项目0:armv6 项目1:armv7

它看起来是这样的:

在尝试了这些混合的答案之后,我终于偶然发现了如何让它起作用。我现在对苹果恨之入骨。他们又浪费了我一个小时。这是我的配置。

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

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

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

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

哇,我大约每6个月更新/提交一次应用。每次我做这件事,我都要学习“新的”方法。

当运行iOS 5.1和Xcode 4.3.2时,同样的问题

谢谢你的帖子!我花了一段时间将所有项目设置更新到armv6, armv7,但没有乐趣。当我将“只构建活动架构”设置为“否”时,我得到了一个关于将两个对象放在同一目录中的构建错误。

幸运的是,我注意到你们正在修改目标构建设置。这就是最终成功的方法(armv6, armv7,并在目标构建设置中将“仅构建活动架构”设置为“No”)。作为免责声明,我已经在项目设置中将所有架构设置为armv6和armv7。

不管怎样,谢谢你的帮助, 布兰特