Xcode - 在Xcode 5上使用多个SDK

6

我有一个项目需要使用iOS 6.1 SDK,但我已升级到XCode5,并没有在“构建设置 -> 基础SDK”中看到iOS 6.1 SDK。我之前将SDK保存在另一个位置,然后尝试将其复制粘贴到/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs目录中,但它并未显示在“构建设置 -> 基础SDK”中。如何在Xcode 5中使用多个SDK?


当我这样做时,它对我显示出来了。我猜你重新启动了Xcode? - Ben Clayton
可能是在Xcode 5上安装iOS 6 SDK是否可行?的重复问题。 - Adam Jenkins
2
请确保您重新启动XCode,有些情况下您需要注销/重新登录。 - Adam Jenkins
为了在iOS 7模拟器中运行iOS 6.1 SDK,我必须从Xcode.app的iPhoneSimulator.platform目录中提取6.1 SDK。 - atreat
@atreat 很好知道。但我已经有了SDK.. - Obj-Swift
3个回答

8

不要直接复制粘贴,应该使用符号链接来避免在每次XCode更新时删除早期的SDK。

1.打开终端并转到下面显示的SDK目录

 cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs

2. 将SDK 6.1或您所需的较早版本的SDK粘贴到文档或任何其他目录中,以便在未来的XCode更新后不会被删除。一旦将SDK放入该目录中,请使用以下命令创建符号链接。(为简单起见,我已将SDK 6.1放在文档目录中)

 sudo ln -s /Users/.../Documents/iPhoneOS6.1.sdk .

注意:在命令后面加上一个空格和一个点,不要忘记。


4

在一个被删除的回答的评论中,你说:

使用7.0 SDK会导致我的应用在iOS7上出现各种奇怪的渲染问题,而我没有时间立即解决。

我理解这个问题,但我认为我必须赞同trojanfoe的观点,最佳实践是应该使用最新的SDK,但可以根据业务需求自由地支持任何之前的iOS版本。因此,理想情况下,应该:

  1. 将应用的最低部署目标设置为您需要支持的最早版本的iOS:

    project target

  2. 显然,编写支持从您应用程序的最小“部署目标”到最新iOS版本的iOS版本范围的代码。这将涉及到 Supporting Multiple Versions of iOSiOS App Programming Guide 列出的常见技术,即:

    • 弱链接不受最早部署目标支持的框架;

    • 检查类是否存在的运行时检查;

    • 对于那些不在您支持的所有iOS版本中都可用的方法,使用respondsToSelector进行运行时检查;

    • 等等。

  3. 然后,如果您想在模拟器上测试早期的iOS版本,在方案菜单中选择目标iOS版本:

    scheme

    显然,您仍然希望在运行旧iOS版本的物理设备上进行测试(以及最新的iOS版本)。但是使用模拟器是一种快速的方法,可以针对早期的iOS版本运行应用程序,以确保您保持向后兼容性。

我理解您对此方法的担忧,也明白这可能不适合您,但我觉得有必要概述我认为是“最佳实践”的内容。

1
如果您想在xCode 5中使用之前的SDK,只需将先前的SDK复制到contents->developer->platforms->iPhoneOS.platform中,然后重新启动xCode。确保您打开的是xCode5的内容并将其粘贴到那里。

1
重启解决了问题。但是为了未来的升级,将答案标记在上面。谢谢。 - Obj-Swift

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接