$(ARCHS_STANDARD_32_BIT)vs. armv6,armv7 / armv7s vs. i386

时间:2011-11-30 09:01:25

标签: objective-c ios xcode

我有一个iPhone应用程序应该在armv7以及armv6上运行。对于调试,App也应该在模拟器中运行。

Xcode 4.2中的标准是:

armv7($(ARCHS_STANDARD_32_BIT)

我不清楚$(ARCHS_STANDARD_32_BIT)代表什么,以及我是否应该使用这两个:

  1. $(ARCHS_STANDARD_32_BIT)
  2. 的ARMv6
  3. 或者这三个都是这样的

    1. 的ARMv6
    2. ARMv7的
    3. I386
    4. 在我的情况下,最好的选择是什么? Architectures如何与Valid Architectures

      一起使用

2 个答案:

答案 0 :(得分:16)

要在模拟器中运行,您无需执行任何操作。

您可以将Valid Architectures设置保留为armv6 armv7,因为根据文档:

  

在构建期间,此列表与ARCHS的值相交   构建设置

要支持armv6和armv7,请将架构设置为$(ARCHS_STANDARD_32_BIT) armv6,$(ARCHS_STANDARD_32_BIT)当前扩展为armv7。

同时检查plist文件中是否存在“必需的设备功能”= UIRequiredDeviceCapabilities设置,因为Xcode将为那里的新项目添加armv7。

答案 1 :(得分:8)

使用Xcode 4.5进行更新:Apple添加了新架构armv7s,它为iPhone 5的新硬件添加了优化功能。

由于我无法在新的iPhone5上测试我们的应用,我通过将支持的体系结构从$(ARCHS_STANDARD_32_BIT)(这意味着armv7 + armv7s)更改为仅从我们的应用中删除了此体系结构armv7

如果您想要或必须支持较旧的iPhone 3G,您还需要添加armv6

您需要为体系结构有效体系结构执行此操作。