Xcode 6标准架构不包括armv7s。

44
我正在尝试使用Xcode 6 Beta,并发现armv7s从标准体系结构中消失了。我浏览了一下Xcode 6的发布说明,但没有看到有关此更改的内容。是否有人可以确认此更改?
Xcode 5.1.1:

enter image description here

Xcode 6 Beta: 在此输入图片描述 更新
iOS 8 Beta论坛上也有一篇关于这个主题的帖子。https://devforums.apple.com/thread/244407?tstart=0 还请注意@ThomasW在添加armv7s到架构方面的回答。

只有一个问题,为什么你使用的是Xcode 5.1GM而不是5.1.1? - rckoenes
1
谢谢指出,我有很多版本的Xcode。它是5.1.1。 - vladof81
1
这在 Xcode 6 GM 中仍然发生! - Clafou
似乎又涉及到ARM64E了。 - Seva Alekseyev
3个回答

36

我也在这个问题上提交了一个错误报告,并收到回复,称这是有意的。如果您想为armv7s构建,则必须手动添加架构。我不知道为什么会进行这种更改。如果我获得额外的信息,我将进行更新。

来自开发人员论坛的更新:

包括armv7s的原因是为了较小的向后兼容性。但是armv7和armv7s指令集之间的一般差异很小。因此,如果选择不包括armv7s,则针对armv7的机器码仍可在32位A6设备上正常运行,并且几乎不会注意到性能差距。

-- 周洋


4
我有一个想法。 armv7s 仅用于3种设备,并且由其引入的浮点指令的性能提升非常具体化。去掉它可以在绝大多数情况下节省空间而不会有任何损失。 - coverback
@Florian 我更新了你的答案,并加入了相关的为什么信息。 - Guillaume Algis
我想知道现在iOS 9中有了Bitcode和App Thining,App Store是否为iPhone 5等构建armv7s。 - Florian

10

根据@vladof在苹果论坛上的帖子,如果您需要包含armv7s支持,则需要手动添加。您可以通过更改架构设置来实现如下:

输入图像描述

如果您正在构建库并且用户期望可用的armv7s分片,则可能需要执行此操作。


@EvaMadrazo 我正在使用这种技术,无论是 Xcode 6.0.1 还是 Xcode 6.1 beta 2,都没有出现错误。 - ThomasW

1
请注意,这个答案是在探索的早期阶段做出的,并且在Xcode 6.0 GM发布时未经过答案检查。这仅用于跟踪,请参考其他答案获取详细信息。
根据苹果论坛上this线程,这似乎是Xcode 6 Beta的一个错误。已经开了一个bug。

我正在使用XCode 6.0.1,但这仍然发生 :( - Eva Madrazo
1
苹果的回应似乎表明,armv7s支持已从标准架构中删除,并且这是预期的行为。(尽管在苹果的发布说明中没有提到这一点,这是他们的一个巨大疏忽。) - ThomasW

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接