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

Build生成以下警告和错误:

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

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

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

我已经清除了所有目标。

谢谢你的建议。


当前回答

我尝试了上面所有的答案,没有一个能解决我的问题。因此,我创建了一个新项目,并逐个区分构建设置。只有“备用权限文件”不同。 项目构建失败的值为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文件。

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

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

ios 6的更新

Xcode 4.5的变化。X for ios 6

Xcode 4.5。X(及以后版本)不支持生成armv6二进制文件。 现在包括iPhone 5/armv7s支持。 Xcode 4.5支持的最低部署目标。x或更新版本为iOS 4.3。

对我来说也是个痛苦的问题。只是花了大约一个小时试图建造和重建-没有乐趣。最后我不得不这样做:

将基础SDK升级到最新版本(在我的例子中是iOS 5) 重启xCode 清洁和建造 它工作!

我猜这是一堆关于arm6, arm7的术语,因为它看起来像我的项目都是有效的,至少设置似乎是这样说的),我猜这是一种愤世嫉俗的方式来欺骗我们的技术,我们不理解,所以我们只是采取简单的选择,瞄准最新的iOS(对苹果有更多的人是最新的)....

对我来说,并不是每个答案都适用。但是我尝试了TARGETS > Architectures > Debug,并添加了一个加按钮的新行,并键入'armv6'(with out '),然后单击Done。

最后CMD+B,然后右键单击PrjectName。>在Finder中打开>压缩“PROJECT_NAME. exe”APP"(在Debug-iphoneos中)>上传到AppStore

这是我的屏幕设置。

如果你有包含项目,请全部配置。 希望你的帮助。