1

我在商店中有一个应用程序,它在 iOS 6+ 上支持 32 位(iPhone 4+)

我现在也有一部 iPhone 5S,我目前正在使用 Xcode 5。

我能够在 iOS 7 下成功运行我的应用程序,只需进行最少的调整,只需要一个状态栏。

我现在想发布一个支持 iOS 7 的版本(用于表格视图/控件的外观和感觉),但也支持我当前用户的 iOS 6。

如何构建我的系统以使其与 iOS 6 和 iOS 7 兼容?

我是否必须为 iOS 7 构建单独提交的 iOS 6 版本和单独的二进制文件?

我也想在 iPhone 5S 中支持 64 位 CPU/架构,我该如何支持呢?

查看仪器我的应用程序仍然是 32 位,即使在 iPhone 5s 上运行,

我是否必须构建单独的 iOS 6、iOS 7 和 iOS 7 64 位二进制文​​件?并将每个版本分别提交到商店?

4

2 回答 2

4

来自 Apple 发行说明:

https://developer.apple.com/library/ios/releasenotes/General/RN-iOSSDK-7.0/

您现在可以提交适用于 iOS 7 的 64 位应用程序,这些应用程序可以利用 iPhone 5s 的强大功能。Xcode 可以构建包含 32 位和 64 位二进制文​​件的应用程序,因此它适用于所有运行 iOS 7 的设备。如果您希望继续支持 iOS 6,那么您只需要构建 32 位。下个月我们将进行更改,以便您可以创建一个在 iOS 6 上支持 32 位以及在 iOS 7 上支持 32 位和 64 位的应用程序二进制文件。

我猜你必须为每个版本(iOS 6 32 位、iOS 7 32 位、iOS 7 64 位)编译不同的二进制文件,直到下个月更新。

于 2013-09-25T18:04:06.483 回答
3

您需要检查您的 Xcode 构建设置。

第一个重要设置是 ARCHS,您可以在其中指定您是仅 32 位、32 + 64 位还是仅 64 位。32 位适用于任何地方,包括 iPhone 5s。32 + 64 位意味着您的应用程序在 iPhone 5s 上运行得更快。

第二个重要设置是 IPHONEOS_DEPLOYMENT_TARGET。这是您的应用将在其上运行的最低 iOS 版本。如果是 6.0,您的应用程序将无法在 iOS 5 上运行。如果是 7.0,您的应用程序将无法在 iOS 5 或 iOS 6 上运行。

第三个重要设置是 SDKROOT。这就是您正在使用的 SDK。Apple 希望您将 7.0 SDK 用于任何新应用程序。

如果部署目标 = 6.0,SDK = 7.0,您必须注意不要仅在运行 iOS 6 的 iPhone 上使用任何 7.0 的代码。因此您必须编写类似“if (iOS 7 function is available) { use iOS 7 function } else { use iOS 6 function}”,只要你想支持iOS 6。

于 2014-03-22T13:32:40.633 回答