什么决定了 iOS 应用程序是不是会在 iOS 7 中获得新外观

Posted

技术标签:

【中文标题】什么决定了 iOS 应用程序是不是会在 iOS 7 中获得新外观【英文标题】:What determines if an iOS app gets the new look in iOS 7什么决定了 iOS 应用程序是否会在 iOS 7 中获得新外观 【发布时间】:2013-10-03 07:00:57 【问题描述】:

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

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

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

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

【问题讨论】:

这不取决于模拟器/设备上的操作系统吗? 是的,您可以在应用商店中使用 xcode 4.6 提交应用 我想要 iOS 7 UI,但它不起作用。我在 xCode 5 中构建我的应用程序,基本 SDK 设置为 7,部署目标设置为 6。但我的应用程序没有获得 iOS 7 UI。 【参考方案1】:

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

【讨论】:

【参考方案2】:

运行 6.1 Base SDK 应该可以做到。

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

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

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

【讨论】:

【参考方案3】:

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

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

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

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

【讨论】:

以上是关于什么决定了 iOS 应用程序是不是会在 iOS 7 中获得新外观的主要内容,如果未能解决你的问题,请参考以下文章

为啥只有当我覆盖它时,我的 UINavigtionController 栏才会在 iOS 7 上错误地定位? [复制]

iOS 11确认将完全停止支持 32 位应用

更改 segue 的位置会在 ios 模拟器中产生黑屏

使应用程序不支持 iOS 7

IOS 是不是会在存储容量不足时删除 WebSQL 数据库?

使用*标准*定位服务的后台 iOS 应用程序是不是会在设备重新启动时重新启动?