(XCode 4.0.2)存档构建(在app-store上分发构建)armv6警告

时间:2011-05-09 04:32:35

标签: ios4 xcode4

我发誓我终于提交了一个使用XCode 4.0.2的应用程序。 但我恐怕现在遇到了一个相当陡峭的障碍。

无论我做什么,我总是得到1-2个与armv6架构相关的警告。 我已经设置了Project&要使用的目标构建设置:

  • 架构:标准版(armv6 armv7)
  • 基本SDK :最新的iOS 4.3
  • 仅构建活动架构:选中或取消选中似乎无法发挥作用)
  • 分发的支持平台:iphoneos
  • 有效架构:armv6 armv7

归档(分发到app-store)我总是收到这些警告:

  • iphone应用应包含armv6架构(当前ARCHS =“armv7”)。
  • iPhone / iPod Touch:应用程序可执行文件缺少必需的体系结构。必须至少存在以下架构之一:armv6(-19033)

请帮忙。

*更新*

只需阅读基本SDK需要设置为iOS 4.0而不是“最新iOS(iOS 4.3)”的地方。它没有警告就建立/存档。

*再次更新*

忽略我之前的更新评论。导致整洁存档构建的原因是取消选中“仅构建活动架构”选项。不知道为什么它决定建立好现在因为这个复选框最初没有检查过,但只是在我开始改变事情之后才尝试修复警告。

2 个答案:

答案 0 :(得分:5)

确保在Xcode中构建设置。

  • “架构”应为“标准(armv6 armv7)”
  • “仅构建活动架构”应为“否”。
  • “有效架构”应为“armv6 armv7”。

可以使用file命令检查存档的应用程序二进制文件。

$ file Payload/Foo.app/Foo
Payload/Foo.app/Foo: Mach-O universal binary with 2 architectures
Payload/Foo.app/Foo (for architecture armv6):   Mach-O executable arm
Payload/Foo.app/Foo (for architecture armv7):   Mach-O executable arm

答案 1 :(得分:0)

我在使用XCode 3构建的旧应用程序上遇到了同样的错误,但是一年后不得不为XCode 4重建。

所有这些设置都是相同的:

"Architectures" should be "Standard (armv6 armv7)"
"Build Active Architecture Only" should be "NO".
"Valid Architectures" should be "armv6 armv7".

我使用file命令检查了存档的应用程序二进制文件。

$ file MyApp

DIDNT返回两个条目

Payload/Foo.app/Foo: Mach-O universal binary with 2 architectures
Payload/Foo.app/Foo (for architecture armv6):   Mach-O executable arm
Payload/Foo.app/Foo (for architecture armv7):   Mach-O executable arm

但一个

$ file MyApp
MyApp: Mach-O executable arm

我在上面的stackoverflow中看到了'universal binary',因此意识到应用程序从未为iPad构建过。

我不得不将iPhone改为Universal。

Project > My App Target > Summary Tab > Devices drop down
Change from iPhone to Universal.

将MainWindow复制到MainWindow-iPad。

我还没打算制作iPad版,所以说没有。

我再次进行归档,验证应用程序有效。