Xcode 5:关于64位架构和向后兼容性

7
我开发了一个iOS应用程序,它的“部署目标”需要是5.0,因此目标的“构建设置 > 架构 > 架构值”必须是标准的,而不是带有64位(如果我尝试包括64位,则XCode会抱怨我的部署目标)。
我读了这篇文章:Xcode 5 and iOS 7: Architecture and Valid architectures,处理这种向后兼容性,但对我来说仍然有些不清楚:
他们在那篇文章中说,最新的Xcode更新允许构建32位和64位,但只适用于iOS 5.1.1及更高版本的部署目标。 我的目标是iOS 5.0,我该怎么办? 如果我只提交32位构建,并且不利用iPhone的5S 64位处理器,苹果会拒绝我的应用程序吗?
最后,他们没有解释目标的“构建设置”中“架构”和“有效架构”值之间的区别,有人能解释一下吗?
谢谢!
1个回答

8

建议

我在针对iOS 5.0开发,我应该如何处理?

根据您的要求,似乎唯一的选择是只构建32位应用程序。这应该可以在iPhone 5s的32位模式下工作。

如果我只提交32位版本并且不利用iPhone的5S 64位处理器,苹果会拒绝我的应用吗?

不会。公开声明32位应用程序将继续在iPhone 5s上运行,尽管已知存在一个已知的错误,即32位应用程序将不支持64位设备上的蓝牙操作(链接)。我已经向商店提交了一个32位应用程序,在iPhone 5s上运行良好。

最后他们没有解释目标构建设置中的架构和有效架构值之间的区别,有人能解释一下吗?

要阅读完整的说明,请参阅Xcode Build Settings 文档,但实质上只需注意两个架构设置的交集参考。实际支持的架构将是值的交集(其中一个或另一个设置可能为空,但不能两个都为空,否则将不会输出任何二进制文件)。

Build Settings


3
还有一个问题...如果在“Architectures”中只设置了“armv7”和“armv7s”,那么我是否应该从“Valid Architectures”中删除“arm64”值? - AppsDev
2
@AppsDev - 这是一个好问题,这里有一个进一步讨论该主题的链接https://dev59.com/T3jZa4cB1Zd3GeqPazD6。我相信如果你删除arm64,应用程序仍将在iPhone5s上以32位模式运行。许多先前的应用程序都没有使用arm64引用并且正在以32位模式运行。 - Tommie C.

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