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 5时,我也遇到了同样的问题,它删除了旧的sdk。但是我从另一台计算机上获取了旧SDK的副本,你可以从下面的链接下载。
http://www.4shared.com/zip/NlPgsxz6/iPhoneOS61sdk.html (www.4shared.com测试账号test@yopmail.com/test)
有两种方法。
1)解压并粘贴到/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS。平台/开发者/ sdk &重新启动xcode。
但如果你更新Xcode,这可能会被Xcode删除。
2)另一种方法是解压并粘贴到/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS。平台/开发者/SDK并在这里创建一个符号链接,这样即使你更新了Xcode, SDK也会保持不变。
我做的另一个改变,构建设置>架构>标准(不是64),所以列出部署目标的所有版本
如果只是想更改部署目标,则不需要下载压缩包。
以下是一些截图。
其他回答
可以这样做,但是没有必要吗
怎么做呢
杰森·李得到了答案。在安装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.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,你就完成了。
Download Xcode 4.6.x from the Apple Dev Center: https://developer.apple.com/downloads/index.action Create a folder called Xcode4 within the Applications folder and drag-n-drop the downloaded dmg there. Open a terminal window $sudo cp -R /Applications/Xcode4/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/ You will be prompt to enter a password since you're inside a system folder Open Xcode 5 and you should now see both SDKs
将6.1 SDK链接到Xcode 5是第一步。然而,这仍然不能解决在iOS 7上运行的新UI元素,视图控制器是全尺寸的等问题。
正如在这个回答中所描述的,在iOS 7上还需要将UI切换到遗留模式:
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"UIUseLegacyUI"];
[[NSUserDefaults standardUserDefaults] synchronize];
注意:这是一个未记录的键,不建议应用程序商店构建!
此外,根据我在设备上测试的经验,我发现它只能在我第二次启动应用时运行,即使我在应用启动的早期运行了代码,在+[AppDelegate initialize]中。此外,它与使用Xcode 4.6构建的版本也有细微的区别。例如,透明导航条的行为不同(导致视图是全尺寸的)。
然而,由于Xcode 4.6.3在Mavericks上崩溃(至少对我来说,见rdar://15318883),这至少是一个继续使用Xcode 5进行调试的解决方案。
我下载了XCode 4,并将iOS 6.1 SDK从它带到XCode 5,如其他答案所述。 然后我还安装了iOS 6.1模拟器(它在首选项中可用)。我还在项目设置中将Base SDK切换到iOS 6.1。
在所有这些操作之后,带有6.1基础sdk的项目在iOS 7模拟器中的comp能力模式下运行。