6

我有一个需要 iOS 6.1 SDK 的项目,我已经升级到 XCode5,但在 Build Settings -> Base SDKs 中没有看到 iOS 6.1 SDK。我有较早的 SDK 单独保存并尝试将其复制粘贴到 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs 目录中。但它没有出现在 Build settings -> Base SDKS 中。如何在 Xcode 5 中使用多个 SDK?

4

3 回答 3

8

Instead of directly copy-pasting you should use symbolic link to avoid deletion of earlier SDKs on each XCode update..

1.Open terminal and go to following SDKs directory as shown below

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

2.Paste SDK 6.1 or your desired earlier SDK in the documents or any other directory where it wont be deleted after future XCode updates. once you put the SDK in that directory , use following command to create a symbolic link. (for simplicity i have put SDK 6.1 in Documents directory)

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

NOTE: don't forget to add a space and a dot after the command.

于 2013-10-02T15:59:13.657 回答
4

在已删除答案的评论中,您说:

使用 7.0 SDK 导致我在 iOS7 上的应用程序出现各种奇怪的渲染问题,我没有时间立即修复

我理解这里的问题,但我不得不说我同意 trojanfoe,最佳实践是确实应该使用最新的 SDK,但也可以随意支持您的业务要求规定的任何先前的 iOS 版本。因此,理想情况下,应该:

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

    项目目标

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

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

    • 运行时检查类的存在;

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

    • 等等

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

    方案

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

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

于 2013-10-03T22:08:06.320 回答
1

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

于 2013-10-02T15:58:17.277 回答