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

Build生成以下警告和错误:

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

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

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

我已经清除了所有目标。

谢谢你的建议。


当前回答

我也有这个问题。我刚刚把我的部署目标设置为4.3,只留下armv7架构,它工作了。在某种程度上,几乎每个人都有5个,所以4.3就可以了。

其他回答

以下是苹果的文档:

技术问答q1760

它说有两件事你必须做对:

将armv6添加到架构构建设置中 将“仅构建活动体系结构”设置为“否”。

如果这仍然对你没有帮助,请仔细检查你是否真的将架构构建设置更改为正确的构建配置-我浪费了半个小时来摆弄错误的配置,并想知道为什么它不起作用…

选择编辑方案…在Product菜单中,点击左边列表中的“Archive”方案,并检查Build Configuration。如果不是您所期望的值,则更改该值。

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

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

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

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

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

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

单击您的项目名称(在左列中),然后单击目标: 点击“Build Settings”选项卡(在右边一栏): 点击“架构”下的“发布”或“分发”行,并选择“其他…”: 在出现的弹出窗口中双击突出显示的名为'$(ARCHS_STANDARD_32_BIT)'的行,并输入'armv6'来替换它。然后在弹出窗口的左下角添加一个加号按钮,输入'armv7',然后单击Done:

更新:你应该添加armv7s来瞄准iPhone 5。(如果使用Xcode 4.5或更高版本构建,则放弃armv6,因为后者不再支持armv6。)

就是这样。您现在应该能够构建/存档而不会生成错误。

如果仍然不工作,请参阅来自justinxreese的回答,它建议在您的信息中的“所需设备功能”下添加armv6和armv7的条目。plist文件。

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

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

项目0:armv6 项目1:armv7

它看起来是这样的: