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

Bes*_*esi 14 xcode objective-c ios

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

Xcode 4.2中的标准是这样的:

armv7($(ARCHS_STANDARD_32_BIT))

我不清楚什么$(ARCHS_STANDARD_32_BIT)代表什么,如果我应该使用这两个:

  1. $(ARCHS_STANDARD_32_BIT)
  2. 的ARMv6

或者这三个都是这样的

  1. 的ARMv6
  2. 的ARMv7
  3. I386

在我的情况下,最好的选择是什么?如何Architectures使用Valid Architectures

k1t*_*1th 16

要在模拟器中运行,您不必执行任何操作.

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

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

要支持armv6和armv7,请将体系结构设置为$(ARCHS_STANDARD_32_BIT) armv6,$(ARCHS_STANDARD_32_BIT)当前扩展为armv7.

还要检查UIRequiredDeviceCapabilitiesplist文件中是否存在"必需的设备功能"= 设置,因为Xcode将为那里的新项目添加armv7.


Bes*_*esi 8

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

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

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

您需要为架构有效架构执行此操作.