【发布时间】:2016-06-08 00:53:21
【问题描述】:
My App 支持 iOS8.0 及以上版本。我知道从 iOS7 开始,它的 arm64 位架构。在这种情况下,我们是否需要为“armv7”和“arm64”切片编译二进制文件?
如果我单独为 arm64 编译,我可以减小我的应用程序大小。这是正确的方法吗?
请帮忙。
【问题讨论】:
标签: ios cpu-architecture armv7 arm64
My App 支持 iOS8.0 及以上版本。我知道从 iOS7 开始,它的 arm64 位架构。在这种情况下,我们是否需要为“armv7”和“arm64”切片编译二进制文件?
如果我单独为 arm64 编译,我可以减小我的应用程序大小。这是正确的方法吗?
请帮忙。
【问题讨论】:
标签: ios cpu-architecture armv7 arm64
Here 你可以找到所有 iPhone 和 Mac CPU 架构的非常容易理解的解释。
当我决定从我支持的架构中移除 armv7 架构时,这对我帮助很大:
排除架构时要谨慎选择。使用 armv7 构建的应用程序将在所有当前的 iOS 设备上运行,即使是那些支持较新架构的设备(它将在 iPhone 5S 及更高版本上以 32 位运行)。但另一方面,不使用 armv7 构建的应用程序将无法在 iPhone 4/4S 或最初的 iPad mini 等旧设备上运行。
【讨论】:
根据我对 Apple 文档的理解,当您针对特定架构编译应用程序时,应用程序的大小会减小,这是正确的做法。
苹果文档:
以更少的 CPU 为目标
默认情况下,Xcode 项目配置为生成优化副本 你的应用程序在你的可执行文件的特定于 CPU 的“切片”中。不同的 硬件将运行可执行文件的不同部分。这使 仅在某些设备上才有可能进行的强大优化。 但是,这会大大增加您的应用程序的大小 可执行文件。
要仅针对特定 CPU,请更改架构构建设置 从标准 $(ARCHS_STANDARD) 到特定名称的列表 您想要支持的 CPU。有效的 CPU 名称列在 Valid 架构 (VALID_ARCHS) 构建设置。不要更改有效 架构设置。它是退化的,最好由 Xcode 管理。
更多信息请参考this
【讨论】: