XCode 4.2问题:标准(armv7)

4
我想在App Store更新我的应用程序,但当我尝试上传时,会出现一个错误提示:我的应用程序不支持armv6。问题是,我甚至不能选择Armv6作为架构。 我的架构设置如下:
  1. 架构:标准(armv7)
  2. 基本SDK:最新的iOS(iOS 5.0)
  3. 仅构建活动架构:否
  4. 有效架构:armv6 armv7 armv7f armv7k
我认为因为第3和第4点都已经设置正确了,所以出现这个问题很奇怪。 我无法更改第1个设置。 那我该怎么办呢?

我认为我们目前无法提交任何针对5.0的内容?!这让我觉得你正在使用那些目前不应该用于应用商店的工具。 - Eiko
没错,我会再次降级到Xcode 4.0.2。谢谢。 - Malte Onken
提交一份关于你在4.2中遇到的问题的雷达报告。虽然我们不应该在4.2中编写生产代码,但他们仍会关注这些问题。http://bugreport.apple.com/ - Kalle
7个回答

2

对于发布构建,最好降级回稳定版本的SDK。甚至在之前的测试版构建说明中,苹果也提到了这一点。

我通过将架构设置为“armv6 armv7”部分解决了这个问题。之后,我可以构建通用二进制文件,但模拟器构建出现了问题。 :)


1
是的,我降级了!我不知道这个信息,只是对iOS5工具太好奇了。 - Malte Onken
你需要使覆盖架构特定; 即 ARCHS[sdk=iphone*] = armv6 armv7。在Xcode 4中有一个“+”按钮可以完成这个操作;这是代码签名设置的设置方式(它不会对模拟器构建进行签名)。 - tc.
我采用了相同的方法,但在模拟器上运行良好。Xcode 4.2 Build 4C177。 - AWrightIV
这个线程是在Xcode 4.2发布之前启动的,当时还是iOS5。Beta版本存在这个问题。现在这个解决方案已经可以无问题运行了。 - Evgen Bodunov

1
我们解决这个问题的方法是进入目标构建设置,选择架构列表并选择其他...然后点击“+”按钮添加自己的“armv6”(不带引号)。完成后,清理目标并进行归档。 请记住,在架构列表中不需要“选择”任何内容。它只是支持的架构列表,应该只包含两个条目。

1

从Xcode中删除所有架构,然后它将接受arm v6和arm v7。


1

这是最好的解决方案,耶!

选择“架构:标准(armv7)” 选择“其他…” 选择“+”按钮 添加“armv6” 选择“完成”


1

针对看到重复符号错误和/或关于缺少armv6的警告的每个人,以下是一些背景知识:

  1. 如果您的应用支持iOS 4.3以下的部署目标,则需要armv6。
  2. 默认情况下,最新的Xcode 4.2架构为$(ARCHS_STANDARD_32_BIT),相当于armv7。
  3. Xcode 4.1具有相同的环境变量,但它将其映射到armv6和armv7。

在Xcode 4.2中执行armv6 + armv7需要一些技巧...

A) 将“armv6”添加到架构列表中。但是,这会破坏Xcode 4.1的构建,因为“armv6”+ $(ARCHS_STANDARD_32_BIT)= armv6 armv6 armv7 -> 重复符号错误

B) 使用变量$(VALID_ARCHS),它映射到armv6 armv6(以及模拟器构建的i386)


0

从架构设置中删除环境变量$(ARCHS_STANDARD_32_BIT)。 将"armv6"和"armv7"添加到架构列表中。 如果您正在构建自己的库-它们也需要具有这些设置。


0
  1. 选择“架构:标准(armv7)”
  2. 选择“其他…”
  3. 选择“+”按钮
  4. 添加“armv6”
  5. 选择“完成”

祝好运


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,