我有一个项目需要使用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?
我有一个项目需要使用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更新时删除早期的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 .
注意:在命令后面加上一个空格和一个点,不要忘记。
在一个被删除的回答的评论中,你说:
使用7.0 SDK会导致我的应用在iOS7上出现各种奇怪的渲染问题,而我没有时间立即解决。
我理解这个问题,但我认为我必须赞同trojanfoe的观点,最佳实践是应该使用最新的SDK,但可以根据业务需求自由地支持任何之前的iOS版本。因此,理想情况下,应该:
将应用的最低部署目标设置为您需要支持的最早版本的iOS:
显然,编写支持从您应用程序的最小“部署目标”到最新iOS版本的iOS版本范围的代码。这将涉及到 Supporting Multiple Versions of iOS 的 iOS App Programming Guide 列出的常见技术,即:
弱链接不受最早部署目标支持的框架;
检查类是否存在的运行时检查;
对于那些不在您支持的所有iOS版本中都可用的方法,使用respondsToSelector
进行运行时检查;
等等。
然后,如果您想在模拟器上测试早期的iOS版本,在方案菜单中选择目标iOS版本:
显然,您仍然希望在运行旧iOS版本的物理设备上进行测试(以及最新的iOS版本)。但是使用模拟器是一种快速的方法,可以针对早期的iOS版本运行应用程序,以确保您保持向后兼容性。