如果我的部署目标是 8.0,我们是不是需要为“armv7”和“arm64”编译 iOS 应用程序?
Posted
技术标签:
【中文标题】如果我的部署目标是 8.0,我们是不是需要为“armv7”和“arm64”编译 iOS 应用程序?【英文标题】:Do we need to compile iOS App for both "armv7" and "arm64" if my deployment target is 8.0?如果我的部署目标是 8.0,我们是否需要为“armv7”和“arm64”编译 iOS 应用程序? 【发布时间】:2016-06-08 00:53:21 【问题描述】:My App 支持 ios8.0 及以上版本。我知道从 iOS7 开始,它的 arm64 位架构。在这种情况下,我们是否需要为“armv7”和“arm64”切片编译二进制文件?
如果我单独为 arm64 编译,我可以减小我的应用程序大小。这是正确的方法吗?
请帮忙。
【问题讨论】:
【参考方案1】:Here 你可以找到所有 iPhone 和 Mac CPU 架构的非常容易理解的解释。
当我决定从我支持的架构中移除 armv7 架构时,这对我帮助很大:
排除架构时要谨慎选择。使用 armv7 构建的应用程序将在所有当前的 iOS 设备上运行,即使是那些支持较新架构的设备(它将在 iPhone 5S 及更高版本上以 32 位运行)。但另一方面,不使用 armv7 构建的应用程序将无法在 iPhone 4/4S 或最初的 iPad mini 等旧设备上运行。
【讨论】:
嗨,你终于删除了 armv7 支持吗?你在你的应用程序中看到任何缺点吗?谢谢!【参考方案2】:根据我对 Apple 文档的理解,当您针对特定架构编译应用程序时,应用程序的大小会减小,这是正确的做法。
苹果文档:
以更少的 CPU 为目标
默认情况下,Xcode 项目配置为生成优化副本 你的应用程序在你的可执行文件的特定于 CPU 的“切片”中。不同的 硬件将运行可执行文件的不同部分。这使 仅在某些设备上才有可能进行的强大优化。 但是,这会大大增加您的应用程序的大小 可执行文件。
要仅针对特定 CPU,请更改架构构建设置 从标准 $(ARCHS_STANDARD) 到特定名称的列表 您想要支持的 CPU。有效的 CPU 名称列在 Valid 架构 (VALID_ARCHS) 构建设置。不要更改有效 架构设置。它是退化的,最好由 Xcode 管理。
更多信息请参考this
【讨论】:
【参考方案3】:您需要为这两者构建应用程序
【讨论】:
这只是表明需要64位代码。它没有显示还需要 32 位代码。 请查看您必须为 32 位和 64 位构建的最后一行 这只是说它建议使用“标准架构”设置来确保提供 64 位支持。以上是关于如果我的部署目标是 8.0,我们是不是需要为“armv7”和“arm64”编译 iOS 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
苹果拒绝我的应用程序在 Xcode 中将部署目标从 6.0 更改为 8.0 [重复]
Alamofire 与 Swift 3.0 和部署目标 8.0