在 ios 的 Xcode 6 中运行 Xcode 5 项目

Posted

技术标签:

【中文标题】在 ios 的 Xcode 6 中运行 Xcode 5 项目【英文标题】:Run Xcode 5 project in Xcode 6 in ios 【发布时间】:2014-10-06 14:05:50 【问题描述】:

我已经使用 Xcode 5 创建了通用项目。现在如何在 Xcode 6 中运行这些项目。 还想升级 iPhone 6 和 iPhone 6 plus。

#define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
#define IS_IPHONE_5 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 568.0)
#define IS_IPHONE_6 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 667.0)
//#define IS_IPHONE_6PLUS (IS_IPHONE && [[UIScreen mainScreen] nativeScale] == 3.0f)
#define IS_IPHONE_6_PLUS (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 736.0)

【问题讨论】:

只需在 Xcode 6 中打开项目,将必要的启动图像添加到资产目录或使用新的启动屏幕文件。 @rckoenes 我在模拟器中遇到问题。无法通过模拟器获得适合 iPhone 6 和 iPhone 6 plus 的尺寸。 您是否在资产目录中添加了正确的启动图像,或者您正在使用新的启动屏幕文件? 我已经在资产目录上添加了启动图像,但是当我运行 iPhone 6 和 6 以及它的打印 568X320 (即 iPhone 5 尺寸)时 您确定图片尺寸正确吗?发布您在哪里创建 UIWindow 【参考方案1】:

不要将您的代码基于屏幕分辨率。可用功能应由respondsToSelector: 检测,UI 应使用自动布局完成,如果您需要对某些尺寸进行一些自定义,请使用 Xcode 中的尺寸类控件。如果您需要在代码中执行此操作,请使用willTransitionToTraitCollection(:withTransitionCoordinator:) 找出将出现的尺寸等级。

查看 Apple 对 size classes 的介绍here

【讨论】:

【参考方案2】:

正如Jorn 所说,不要使用特定尺寸的屏幕。鉴于最近发生的事件,Apple 不再受到少数屏幕尺寸的限制,这一点应该很明显。

要使您的应用在 iPhone 6 和 6+ 上运行,您需要添加一个启动屏幕文件,可以是 XIB 或看起来像您的第一个屏幕(或启动屏幕)的情节提要。就像 iPhone 5 大小的图像告诉 Xcode 您的应用支持 iPhone 5 一样,启动屏幕告诉 Xcode 您的应用已针对最新的手机进行了更新。

请注意,您可能还需要进行其他更改。除了屏幕尺寸之外,ios 8 SDK 还有很多变化。

【讨论】:

先生,我如何使用启动屏幕添加启动图像? Google 很快想到了:oleb.net/blog/2014/08/replacing-launch-images-with-storyboards

以上是关于在 ios 的 Xcode 6 中运行 Xcode 5 项目的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Xcode 6.0 Beta 中运行 iOS 7.1 模拟器?

新的 Xcode 6 项目 - 如何在 iOS 7 模拟器中运行

突发错误“iOS 8.4 模拟器运行时不可用。”在 Xcode 6.4 中

运行 iOS 8.3 的 iPhone 在 Xcode 6.2 中显示为不合格

iCloud Core Data 在 Xcode 6 / ios 8 SDK 中运行后不可用

在没有 XCODE 5 的运行 iOS7 的设备上测试 iOS 6 应用程序