我们支持iOS 6& 7之前我们的通用iOS应用程序(这意味着我们支持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。
答案 0 :(得分:3)
在Architectures
中,您可以使用armv7, armv7s, arm64, i386
,其中i386
适用于模拟器。其余的可以保留默认值。
更新:为了支持iOS模拟器的构建,不需要提及桌面架构(i386
,x86_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
中设置的所有体系结构中的一个构建所有二进制文件。
答案 1 :(得分:0)
如果您不是目标体系结构的专家,请删除所有体系结构并添加armv7和armv7。此外,如果您仅针对iOS构建,请检查您的目标,以便Xcode不构建其他操作系统(可能需要其他架构)。