我有一个在 XCode 4 中为 iOS6 构建的应用程序。如果我在 iOS7 上运行该应用程序,它的外观和行为都非常完美 - 与它在 iOS6 中一直使用的完全相同。
但是,如果我在 XCode 5 中模拟应用程序,则会出现几个问题,即使我让目标操作系统保持不变。这对我来说没有意义。如果我需要对应用程序进行细微更改而不进行重大迁移(更改按钮的外观等),我是否必须继续使用 XCode 4?
您在 XCode 4 中编译的应用很可能具有 iOS6 的目标 SDK。在 iOS7 上运行时,iOS7 检测到该应用程序从未针对 iOS7 SDK 进行编译,并在“iOS6 兼容性”模式下运行它。这就是为什么它看起来很棒。
当你在 XCode 5 中编译你的应用程序时,它的目标 SDK 很可能是 iOS7。当您在 iOS7 上运行该版本时,iOS7 会确定您的应用程序“完全支持”iOS7 并应用所有新的 UI 指标,这可能会影响您的布局并使您的 UI 看起来不正确。
第一件事 - 检查您拥有的 Xibs/故事板,在属性中确保选择“查看为”具有 iOS 6.1 及更早版本,否则它将显示为 iOS7。
我也对此感到惊讶,这就是我的想法:
看起来针对 iOS 6 SDK 构建的应用程序看起来与 iOS 6中的完全一样(甚至键盘也是一样的)。但是,当您使用 Xcode 5 测试您的应用程序并针对 iOS 7 SDK 构建它时,它们看起来“很糟糕”。