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,那么变通方法应该不再是必要的了。
当前回答
这里的其他答案也是正确的,但我发现以下步骤是最简单的:
只需从开发中心链接下载Xcode 4.6.3,上面写着“寻找Xcode的旧版本?”(目前点这里)和安装dmg。
然后在终端,复制SDK文件:
cp -R /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
最后,重新启动Xcode,你就完成了。
其他回答
可以这样做,但是没有必要吗
怎么做呢
杰森·李得到了答案。在安装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 4,并将iOS 6.1 SDK从它带到XCode 5,如其他答案所述。 然后我还安装了iOS 6.1模拟器(它在首选项中可用)。我还在项目设置中将Base SDK切换到iOS 6.1。
在所有这些操作之后,带有6.1基础sdk的项目在iOS 7模拟器中的comp能力模式下运行。
对我来说最简单的解决方法:
Locate an older SDK like for example "iPhoneOS6.1 sdk" in an older version of xcode for example. If you haven't, you can downlad it from Apple Developer server at this address: https://developer.apple.com/downloads/index.action?name=Xcode When you open the xcode.dmg you can find it by opening the Xcode.app (right click and "show contents") and go to Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1 sdk Simple Copy the folder iPhoneOS6.X sdk and paste it in your xcode.app right click on your xcode.app in Applications folder. Go to Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/ Just paste here.
关闭你的xcode应用程序,重新打开它。
要在模拟器上测试iOS 6中的应用程序: -在你的活动场景中选择iOS 6.0即可。
要在iOS 6中构建应用程序,那么你的应用程序的设计将是iOS 7 iPhone上的旧设计: —在“Targets - Base SDK”中选择“iOS6.1”
请注意:当你在你的目标中改变基础SDK时,iOS 7.0将不再可用来构建模拟器!
编辑:从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。在这里可以找到旧的sdk。
我已经复制了xcode。app目录为Xcode_4.6.3.app。
现在你可以在两个xcode版本中进行测试和调试。你必须从相应的文件夹中运行它们,或者在桌面上创建快捷方式。从命令行构建时,将参数设置为iPhoneOS6.1而不是iPhoneOS7.0
这在Xcode5和iOS中非常有效。
进入Xcode5的SDK目录。它通常位于:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
向旧SDK添加一个符号链接,如下所示:
sudo ln -s /Applications/Xcode_4.6.3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk iPhoneOS6.1.sdk
或者更准确地说,在命令行中,
sudo ln -s /Applications/Xcode_4.6.3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk