简体   繁体   English

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

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

I have an iPhone App which should run on armv7 as well as armv6. 我有一个iPhone应用程序应该在armv7和armv6上运行。 For debugging the App should run in the simulator too. 对于调试,App也应该在模拟器中运行。

The Standard in Xcode 4.2 is this: Xcode 4.2中的标准是这样的:

armv7 ( $(ARCHS_STANDARD_32_BIT) ) armv7( $(ARCHS_STANDARD_32_BIT)

It is not clear to me what $(ARCHS_STANDARD_32_BIT) stands for and if I should use the two: 我不清楚$(ARCHS_STANDARD_32_BIT)代表什么,如果我应该使用这两个:

  1. $(ARCHS_STANDARD_32_BIT) $(ARCHS_STANDARD_32_BIT)
  2. armv6 的ARMv6

Or all three like this 或者这三个都是这样的

  1. armv6 的ARMv6
  2. armv7 的ARMv7
  3. i386 I386

What is the best option for this in my case? 在我的情况下,最好的选择是什么? And how does Architectures work with Valid Architectures Architectures如何与Valid Architectures

To run in the simulator you don't have to do anything. 要在模拟器中运行,您不必执行任何操作。

You can leave the Valid Architectures setting at armv6 armv7 , because, according to the docs: 您可以将Valid Architectures设置保留在armv6 armv7 ,因为根据文档:

During the build, this list is intersected with the value of ARCHS build setting 在构建期间,此列表与ARCHS构建设置的值相交

To support armv6 and armv7, set the architectures to $(ARCHS_STANDARD_32_BIT) armv6 , $(ARCHS_STANDARD_32_BIT) currently expands to armv7. 为了支持armv6和armv7,将架构设置为$(ARCHS_STANDARD_32_BIT) armv6 ,$(ARCHS_STANDARD_32_BIT)当前扩展为armv7。

Also check if there is a "Required device capabilities" = UIRequiredDeviceCapabilities setting in your plist file, as Xcode will add armv7 for new projects there. 同时检查plist文件中是否存在“必需的设备功能”= UIRequiredDeviceCapabilities设置,因为Xcode将为那里的新项目添加armv7。

Update with Xcode 4.5 : Apple added the new architecture armv7s , which adds optimisations for the new hardware of the iPhone 5. 使用Xcode 4.5进行更新 :Apple添加了新的架构armv7s ,它为iPhone 5的新硬件增加了优化。

Since I could not test our app on the new iPhone5, I removed this architecture from our app by changing the supported architecture from $(ARCHS_STANDARD_32_BIT) (which means armv7 + armv7s ) to only armv7 . 由于我无法在新的iPhone5上测试我们的应用程序,我通过将支持的架构从$(ARCHS_STANDARD_32_BIT) (这意味着armv7 + armv7s )改为armv7从我们的应用程序中删除了这个架构。

If you want or have to support the older iPhone 3G you also need to addd armv6 . 如果你想要或必须支持旧的iPhone 3G,你还需要添加armv6

You need to do this for both Architectures and Valid Architectures . 您需要为架构有效架构执行此操作。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 无法为armv7进行编译,此处有效的体系结构为armv6,armv7和i386 - Cannot compile for armv7s here valid architectures are armv6, armv7 and i386 优化 (armv7) 与标准 (armv6 armv7) - Optimized (armv7) versus Standard (armv6 armv7) UIRequiredDeviceCapabilities armv6 和 armv7 - UIRequiredDeviceCapabilities armv6 and armv7 根据需要有条件地链接i386或armv7 - Conditionally link i386 or armv7 depending on need 体系结构i386 / armv7的未定义符号[cocoapods] - Undefined symbols for architecture i386/armv7 [cocoapods] iPhone 5S特定错误:没有要编译的体系结构(ONLY_ACTIVE_ARCH = YES,活动arch = arm64,VALID_ARCHS = armv7 armv7s) - iPhone 5S Specific Error: No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=arm64, VALID_ARCHS=armv7 armv7s) 错误“没有要编译的架构(ONLY_ACTIVE_ARCH = YES,活动arch = x86_64,VALID_ARCHS = armv7 armv7s)”。 - an error “No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=armv7 armv7s).”? 如何将Armv7二进制文件转换为i386 / x86_64 - How do I convert an armv7 binary to i386/x86_64 没有要编译的架构(ONLY_ACTIVE_ARCH = YES,活动arch = x86_64,VALID_ARCHS = armv6 armv7) - No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=armv6 armv7) 检测处理器ArmV7与ArmV7s。 Objective-C的 - Detect processor ArmV7 vs ArmV7s. Objective-C
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM