arm64 armv7 armv7s 架构设置
Posted
技术标签:
【中文标题】arm64 armv7 armv7s 架构设置【英文标题】:arm64 armv7 armv7s Architectures settings 【发布时间】:2014-02-14 04:51:06 【问题描述】:标准:
-
仅限 iPad 的应用程序。仅支持 iPad 2 或更高版本。
想要利用最新 iPad 的 64 位代码。
最低 ios 6。
Xcode 5.02 和 iOS 7 SDK(当前版本)
我应该将架构和有效架构都设置为 arm64 armv7 armv7s?
【问题讨论】:
【参考方案1】:Xcode 5.0.1 可以构建包含 32 位和 64 位二进制文件的应用程序。此组合二进制文件需要 iOS 5.1.1 或更高版本的最低部署目标。 64 位二进制文件仅在运行 iOS 7.0.3 及更高版本的 64 位设备上运行。如果您有一个现有的应用程序,您应该首先为 iOS 7 更新您的应用程序,然后将其移植到在 64 位处理器上运行。通过首先为 iOS 7 更新它,您可以删除不推荐使用的代码路径并使用现代实践。如果您要创建新应用,请以 iOS 7 为目标并编译您的应用的 32 位和 64 位版本。
iOS 上 64 位应用程序的架构几乎与 OS X 应用程序的架构相同,因此可以轻松创建在两种操作系统中运行的通用代码库。将 Cocoa Touch 应用程序转换为 64 位遵循与 OS X 上的 Cocoa 应用程序类似的转换过程。指针和一些常见的 C 类型从 32 位更改为 64 位。需要仔细检查依赖于 NSInteger 和 CGFloat 类型的代码。
首先为 64 位运行时构建应用,修复出现的任何警告,并在代码中搜索特定的 64 位问题。例如:
确保所有函数调用都有正确的原型。 避免因意外将 64 位值分配给 32 位数据类型而截断它们。 确保在 64 位版本的应用程序中正确执行计算。 在 32 位和 64 位版本的应用中创建布局相同的数据结构(例如当您将数据文件写入 iCloud 时)。
参考:apple doc
【讨论】:
谢谢。很详细的回答。我看到几个关于 SO 的问题,人们遇到了与 64 位相关的 CGFloat 问题。【参考方案2】:是的。您可以根据上述条件设置两种架构。但问题是,您应该处理两种情况(32 位和 64 位)的代码。
注意:
给你的附加说明。
您可以从最低 IOS 5.1 开始支持
您可以将 Xcode 5.0.1 与 IOS 7 基础 SDK 一起使用
【讨论】:
以上是关于arm64 armv7 armv7s 架构设置的主要内容,如果未能解决你的问题,请参考以下文章
“包含 arm64 的应用程序必须包含 armv7 和 armv7s 架构”应用程序加载器中的错误
我可以构建 Armv7 + Arm64 架构,但不能单独构建 Armv7
iOS armv7, armv7s, arm64区别与应用32位、64位配置
iOS CPU架构 arm64/armv7s/armv7/armv7k/i386/x86_64