我应该在“架构”部分的Xcode构建设置中包含哪些内容

问题描述 投票:3回答:2

我们以前为我们的通用iOS应用程序支持iOS 6和7(这意味着我们支持iPhone和iPad)。现在,随着iOS 8的发布,我们必须支持iOS 6,iOS 7和iOS 8.此外,我们必须扩展我们的目标设备列表以支持iPhone 6和iPhone 6 Plus。

此外,我们计划很快升级到Xcode 6。因为Apple可能随时要求使用Xcode 6来向app store提交应用程序。

牢记以上几点,我很困惑Xcode构建设置中的架构设置应该是什么。主要在Xcode Architectures设置下有3个重要项目。请参阅下面的屏幕截图。

我突出了3个重要参数。我想知道我应该为这些参数分配什么值以支持上述所有内容。任何帮助将不胜感激。我对此感到困惑。

此外,我想知道我是否需要更改其他任何内容才能迁移到Xcode 6和iOS 8。

ios7 ios6 ios8 xcode6 xcode5.1
2个回答
3
投票

Architectures,你可以使用armv7, armv7s, arm64, i386i386用于模拟器。其余的可以保留默认值。

更新:为了支持iOS模拟器的构建,不需要提及桌面架构(i386x86_64)。仅通过包含相应的ARM体系结构来支持模拟器。因此,如果只使用Architectures填充armv7 armv7s arm64是好的。通过观察,从Xcode 6.3开始,如果设置包含任何桌面架构,它甚至可能导致构建失败。

可以为每个目标单独设置Valid architectures,Xcode将使全局Architectures设置与此交叉。如果您对此不感兴趣,请保持不变,Xcode将自行解决这个问题。

如果您的代码不是64位就绪,请从arm64中删除Architectures。应用程序仍将在iOS 8和所有最近的64位设备上运行。

至于Build Active Architecture Only,我建议将它设置为No。此属性会影响Xcode决定构建的内容,例如基于当前连接的设备。但是可能会出现问题:您可能最终会为不同的架构构建一些目标,从而导致链接错误。不过,如果您想使用该功能的专业人士,请将其设置为Yes仅用于Debug或某种仅用于测试的配置,而不是最终版本。 Xcode将仅为您在Architectures x Valid中设置的所有体系结构之一构建所有二进制文件。


0
投票

如果您不是目标体系结构的专家,请删除所有体系结构并添加armv7和armv7。此外,如果您仅为iOS构建,请检查目标,以便Xcode不构建其他操作系统(可能需要其他体系结构)。

© www.soinside.com 2019 - 2024. All rights reserved.