9

iOS 7 究竟使用什么来确定应用程序应该使用传统的 iOS 6 样式 UI(也称为 iOS6 兼容模式)还是更新的 iOS 7 UI 显示?

  • 如果我在 Xcode 5 中构建我们的应用程序,并将基本 SDK 设置为 7,我会按预期获得 iOS 7 UI
  • 如果我在 Xcode 5 中构建我们的应用程序,并将基本 SDK 设置为 6,我仍然会得到 iOS 7 UI(意外,发生在真实设备和模拟器上)
  • 如果我在 Xcode 4.x 中构建,我会按预期获得较旧的 UI

在所有情况下,部署目标都设置为 5。

由于我们的应用程序具有相当自定义的 UI,我们还没有准备好迁移到 iOS 7 的新外观。但是,我们确实需要进行一些后端更改以支持我们现在需要发布的 iOS 7。我们仍然可以提交使用 Xcode 4.x 构建的应用程序并期望它们被接受吗?

4

3 回答 3

4

暂时,你可以。Apple 将在停止接受使用 Xcode 4.x 构建的应用程序时发布公告。我的公司目前正在使用 Xcode 4.6 提交应用程序,因为我们没有足够新的操作系统来支持 5。我怀疑它们至少需要几个月才能停止。

于 2013-10-03T07:08:07.293 回答
2

针对 6.1 Base SDK 运行应该可以。

然而,正如我昨天发现的那样。Xcode 5(官方)不支持低于 7.0 Base SDK 的任何内容,因此它是未定义的行为。

我的应用突然从 iOS6 UI 切换到 iOS7 UI,没有代码更改。

最后,我重新启动了我的 mac 和手机,删除了应用程序,删除了派生数据并重新安装了 cocoapods,它再次在 iOS6 UI 上运行。

于 2013-10-03T07:09:53.857 回答
0

确保在项目构建设置和目标构建设置中都将 Base SDK 设置为 iOS 6 - 这应该可以解决问题。即使目标设置应该覆盖项目,我发现当目标设置为 6 时 - 它使用 7 编译。

关于 XCode 5,它确实没有随 iOS 6 SDK 正式发布。但是,您可以从 XCode 4.6 中提取它并在 5 中使用它。您将在 XCode 应用程序的以下位置找到 SDK:Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs

只需将其从 XCode 4.6 的现有安装或其 .dmg(仍可从 Apple 网站下载)复制到 XCode 5 中的相应文件夹,然后重新启动,您现在应该可以选择它作为 Base SDK。请注意,您必须在每次更新 XCode 后执行此操作,因此您可能会发现使用符号链接比复制更容易。

我们已经成功地将这种方式构建的应用程序提交到了 App Store,尽管正如我之前所说的,在 Apple 强制要求之前尽快过渡到 iOS 7 是个好主意。

于 2013-11-12T08:36:17.000 回答