【问题标题】:arm64 armv7 armv7s Architectures settingsarm64 armv7 armv7s 架构设置
【发布时间】:2014-02-14 04:51:06
【问题描述】:

标准:

  1. 仅限 iPad 的应用程序。仅支持 iPad 2 或更高版本。
  2. 想要利用最新 iPad 的 64 位代码。
  3. 最低 iOS 6。
  4. Xcode 5.02 和 iOS 7 SDK(当前版本)

我应该将架构和有效架构都设置为 arm64 armv7 armv7s?

【问题讨论】:

    标签: ios


    【解决方案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 位)的代码。

    注意:

    给你的附加说明。

    1. 您可以从最低 IOS 5.1 开始支持

    2. 您可以将 Xcode 5.0.1 与 IOS 7 基础 SDK 一起使用

    【讨论】:

      猜你喜欢
      • 2018-08-02
      • 2014-06-03
      • 1970-01-01
      • 1970-01-01
      • 2019-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-11
      相关资源
      最近更新 更多