什么决定了 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,我会得到预期的 iOS 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 上错误地定位? [复制]