- 架构:标准(armv7)
- 基本SDK:最新的iOS(iOS 5.0)
- 仅构建活动架构:否
- 有效架构:armv6 armv7 armv7f armv7k
对于发布构建,最好降级回稳定版本的SDK。甚至在之前的测试版构建说明中,苹果也提到了这一点。
我通过将架构设置为“armv6 armv7”部分解决了这个问题。之后,我可以构建通用二进制文件,但模拟器构建出现了问题。 :)
ARCHS[sdk=iphone*] = armv6 armv7
。在Xcode 4中有一个“+”按钮可以完成这个操作;这是代码签名设置的设置方式(它不会对模拟器构建进行签名)。 - tc.从Xcode中删除所有架构,然后它将接受arm v6和arm v7。
这是最好的解决方案,耶!
选择“架构:标准(armv7)” 选择“其他…” 选择“+”按钮 添加“armv6” 选择“完成”
针对看到重复符号错误和/或关于缺少armv6的警告的每个人,以下是一些背景知识:
在Xcode 4.2中执行armv6 + armv7需要一些技巧...
A) 将“armv6”添加到架构列表中。但是,这会破坏Xcode 4.1的构建,因为“armv6”+ $(ARCHS_STANDARD_32_BIT)= armv6 armv6 armv7 -> 重复符号错误
B) 使用变量$(VALID_ARCHS),它映射到armv6 armv6(以及模拟器构建的i386)
从架构设置中删除环境变量$(ARCHS_STANDARD_32_BIT)。 将"armv6"和"armv7"添加到架构列表中。 如果您正在构建自己的库-它们也需要具有这些设置。
祝好运