Xcode 5有一个首选项窗格,允许一个人下载iPhone 6.1模拟器,但我找不到一个地方,它允许下载iOS 6 SDK,因此不可能将活动SDK设置为iOS 6时,用Xcode 5开发。是否存在允许Xcode 5安装iOS 6 SDK的解决方案?
编辑:
既然Xcode 5已经普遍可用,并且允许你下载以前版本的SDK,那么变通方法应该不再是必要的了。
Xcode 5有一个首选项窗格,允许一个人下载iPhone 6.1模拟器,但我找不到一个地方,它允许下载iOS 6 SDK,因此不可能将活动SDK设置为iOS 6时,用Xcode 5开发。是否存在允许Xcode 5安装iOS 6 SDK的解决方案?
编辑:
既然Xcode 5已经普遍可用,并且允许你下载以前版本的SDK,那么变通方法应该不再是必要的了。
当前回答
您可以下载旧的SDK并将其安装进去
xcode /内容/开发/平台/ iPhoneOS.platform /开发/ sdk /
文件夹中。注销+登录只是为了确保更改生效,你应该在你的新XCode中看到旧的SDK
其他回答
编辑:从2014年2月1日开始,苹果将不再接受ios 7之前的应用程序提交到App Store。因此,虽然这个技巧仍然有效,但对大多数读者来说并不有用。
是的,这很好。我仍然在一个项目中使用iOS 4.3(自从我们更新以来已经有一段时间了;但在iOS 6发布后,他们仍然接受了它),我目前用Xcode 5开发了10.5个应用程序。
参见如何将Xcode指向旧SDK,以便它可以用作“基础SDK”?有关如何设置它的详细信息。你可以使用我的fix-xcode 脚本链接一切为您每次升级。
唯一的诀窍就是拿到旧的sdk。如果你没有它们,你通常需要下载旧版本的Xcode(仍然可以在developer.apple.com上找到),打开安装包,然后四处寻找你需要的SDK。
sdk可以在安装包中找到:
xcode /内容/开发/平台/
您可以下载旧的SDK并将其安装进去
xcode /内容/开发/平台/ iPhoneOS.platform /开发/ sdk /
文件夹中。注销+登录只是为了确保更改生效,你应该在你的新XCode中看到旧的SDK
可以这样做,但是没有必要吗
怎么做呢
杰森·李得到了答案。在安装xCode时,我宁愿保留以前的安装,而不是替换它们。这些都在我的安装文件夹里
所以/应用程序/ xcode /内容/开发/平台/ iPhoneOS。platform/Developer/ sdk包含不同的sdk。(取代Xcode。应用程序与正确的数字)复制以前的SDKS到
/应用程序/ Xcode 3.应用/内容/开发/平台/ iPhoneOS.platform /开发/ sdk
这是我复制后的文件夹。
现在重新启动xCode,你可以将以前版本的sdk设置为基础sdk。
为什么没有必要
引用Apple Documentaion
为了在Xcode项目中使用特定的SDK,在项目的构建设置中做两个选择。
选择一个部署目标。 这标识了软件可以在其上运行的最早的操作系统版本。 选择基础SDK 您的软件可以使用OS版本中提供的功能,包括与基本SDK对应的版本。默认情况下,Xcode将此设置为Xcode支持的最新操作系统。
规则是使用最新的基础SDK,并将部署目标设置为应用程序应该运行的最低版本
例如,你可以使用iOS 7作为基础sdk,并设置iOS 6作为部署目标。在iOS 6模拟器上运行以测试它在iOS 6上的工作方式。安装模拟器,如果模拟器列表不可用。
另外,您可以无条件使用iOS 6以上的功能。有条件地,你可以在支持以前版本的同时,为新更新的设备支持iOS 7的新功能。
这可以使用弱链接类、弱链接方法、函数和符号来实现
https://developer.apple.com/library/ios/documentation/developertools/conceptual/cross_development/Using/using.html#//apple_ref/doc/uid/20002000-SW3
弱连接
假设在Xcode中,你将部署目标(最低要求版本)设置为iOS6,而目标SDK(最大允许版本)设置为iOS7。在编译过程中,编译器会弱链接任何在iOS7中引入的接口,而强链接之前的接口。这将允许你的应用程序继续在iOS6上运行,但仍然可以利用更新的功能。
只是补充一下,你实际上可以下载带有Xcode 5本身的旧版本的模拟器——只要进入首选项,你会在下载下面找到它们:
我的应用无缝过渡到Xcode 5,因为它仍然可以使用你在项目中设置的原始iOS部署目标(在我的情况下是5.1)来构建。如果新的SDK不会导致一些不可克服的问题,那么为什么不使用它来构建呢?当然,在引擎盖下有很多改进。
例如,我更喜欢使用Xcode 5而不是Xcode 4.6.3。为什么?我将获得更多的电池寿命,因为Xcode 5中文本/代码区域的UI滚动不再占用整个CPU线程。