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

Build生成以下警告和错误:

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

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

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

我已经清除了所有目标。

谢谢你的建议。


当前回答

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

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

这是我的屏幕设置。

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

其他回答

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

是的,我嵌入PhoneGap;它们更新得非常频繁,我在不到两个月的时间里就知道某个功能被贬低了。

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

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

在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。

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

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

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