是否可以在Xcode 5上安装iOS 6 SDK?

Ton*_*ony 248 xcode ios ios6 xcode5

Xcode 5有一个首选项窗格,允许用户下载iPhone 6.1模拟器,但我找不到允许下载iOS 6 SDK的地方,因此在使用Xcode 5进行开发时无法将活动SDK设置为iOS 6 .是否有允许Xcode 5安装iOS 6 SDK的解决方法?

编辑:

现在,Xcode 5通常可用,并且允许您下载SDK的先前版本,因此不再需要解决方法.

在此输入图像描述

Rob*_*ier 202

编辑:从2014年2月1日开始,Apple将不再接受iOS7之前的应用程序提交到App Store.因此,尽管这种技术仍然有效,但它对大多数读者来说并没有用.


是的,这很好.我仍然使用iOS 4.3为一个项目构建(自我们更新以来已经有一段时间了;但他们仍然在iOS 6发布后接受它),而且我目前使用Xcode 5构建了10.5个应用程序.

请参阅如何将Xcode指向旧版SDK,以便将其用作"基本SDK"?有关如何设置的详细信息. 每次升级时,您都可以使用我的fix-xcode脚本为您链接所有内容.

唯一的技巧是获取旧的SDK.如果您没有它们,通常需要下载旧版本的Xcode(仍在developer.apple.com上提供),打开安装程序包,然后寻找所需的SDK.

SDK可以在安装程序包中找到:

Xcode.app/Contents/Developer/Platforms/

  • 喜.这很接近,但不适合我.按钮看起来像iOS 6,但在使用UINavigationController时,视图控制器内容仍然在导航栏后面.关于如何获得iOS 6行为的任何想法? (6认同)
  • 哇,这真是太棒了.正是我正在寻找的东西.如果我知道这个工作,我会在5个月前采用Xcode!迟到总比没有好,多亏了Rob.+10. (2认同)
  • 没有; 你只会在设备上看到这个.iOS 7模拟器中没有iOS 6兼容模式.如果你想看看它在模拟器中的外观,请在iOS 6模拟器上进行测试. (2认同)

Avt*_*iya 60

当我更新到xcode 5时,我也运行了同样的问题,它删除了旧的sdk.但我从另一台计算机上获取了旧版SDK的副本,您可以从以下链接下载.

http://www.4shared.com/zip/NlPgsxz6/iPhoneOS61sdk.html(www.4shared.com
test account test@yopmail.com/test)

有两种方法可以使用.

1)将此文件夹解压缩并粘贴到/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs并重新启动xcode.

但是如果你更新xcode,这可能会被Xcode删除.

2)另一种方法是解压缩并粘贴到你想要的位置,然后转到/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs并在此处创建一个符号链接,这样即使SDK仍然保持相同你更新Xcode.

我做了另一项更改,Build Setting> Architectures> standard(而不是64),因此列出了Deployment Target的所有版本

如果您只想更改部署目标,则无需下载zip.

这是一些截图. 在此输入图像描述 在此输入图像描述

  • 你是如何以及在哪里下载这个ios6.1 sdk的?我正在寻找iOS 5 sdk来对抗我的Xcode 5.你可以上传它或指向我自己下载的地方.谢谢 (2认同)

Jas*_*Lee 34

是的,我今天刚解决了这个问题.

  1. 在您或您朋友的旧Xcode目录中找到SDK文件,如iPhoneOS6.1.sdk.
  2. 复制并将其放入Xcode 5目录:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs.

在此输入图像描述

然后你可以选择如下的SDK:

在此输入图像描述

希望这对你有所帮助.

  • 我做了同样但我的应用程序GUI更改,它看起来像iOS 7 GUI.我选择iPhone Retina(4英寸64位)模拟器来运行应用程序.这样做之后,我错过了其他任何事情. (2认同)

kar*_*rim 20

查找并下载旧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
Run Code Online (Sandbox Code Playgroud)

像这样添加旧SDK的符号链接:

sudo ln -s /Applications/Xcode_4.6.3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk iPhoneOS6.1.sdk
Run Code Online (Sandbox Code Playgroud)

或者更准确地从命令行中的任何位置,

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
Run Code Online (Sandbox Code Playgroud)


uns*_*ber 11

您可以下载旧版SDK并将其安装在其中

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

夹.注销+登录只是为了确保更改生效,您应该在新的XCode中看到旧的SDK


Smi*_*key 11

只需添加,您实际上可以使用Xcode 5本身下载旧版本的模拟器 - 只需转到首选项,您就可以在下载中找到它们:

在此输入图像描述

  • @Manni这与编译旧API不同.您正在使用适用于iOS 6的新API进行构建. (5认同)

小智 10

  • 从Apple开发中心下载Xcode 4.6.x:https://developer.apple.com/downloads/index.action
  • 在Applications文件夹中创建一个名为Xcode4的文件夹,然后将下载的dmg拖放到那里.
  • 打开终端窗口

    $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/
    
    Run Code Online (Sandbox Code Playgroud)
  • 由于您在系统文件夹中,因此系统会提示您输入密码

  • 打开Xcode 5,您现在应该看到两个SDK


小智 10

对我来说最简单的解决方案:

  1. 例如,在较旧版本的xcode中找到较旧的SDK,例如"iPhoneOS6.1 sdk".如果还没有,可以从Apple Developer服务器上获取此地址:https: //developer.apple.com/downloads/index.action? name = Xcode当你打开xcode.dmg时,你可以通过打开它来找到它Xcode.app(右击和"显示内容")并转到目录/开发人员/平台/ iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1 sdk 在此输入图像描述
  2. 简单复制文件夹iPhoneOS6.X sdk并将其粘贴到xcode.app中
    • 右键单击Applications文件夹中的xcode.app.
    • 转到目录/开发人员/平台/ iPhoneOS.platform/Developer/SDKs /
    • 只需粘贴在这里

在此输入图像描述

  1. 关闭您的xcode应用程序,然后重新打开它.

要在模拟器上测试iOS 6中的应用程序: - 只需在活动的sheme中选择iOS 6.0即可. 在此输入图像描述

要在iOS 6中构建您的应用程序,因此您的应用程序的设计将是iOS 7上的旧设计: - 在目标中选择iOS6.1 - 基本SDK

在此输入图像描述

请注意:当您更改目标中的基础SDK时,iOS 7.0将不再可用于在模拟器上构建!


Mad*_*Nik 9

可以做到这一点,但不是真的有必要

这该怎么做

杰森李得到了答案.安装xCode时,我更喜欢保留以前的安装而不是替换它们.所以我在我的安装文件夹中有这些

在此输入图像描述

所以/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs包含不同的sdks.(将Xcode.app替换为正确的数字)将以前的sdks复制到

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

复制之后,这是我的文件夹.

在此输入图像描述

现在重新启动xCode,您可以将以前版本的sdks设置为基本sdk.

为什么没有必要

参考Apple Documentaion

要将特定SDK用于Xcode项目,请在项目的构建设置中进行两项选择.

  1. 选择部署目标.

    这标识了您的软件可以运行的最早的操作系统版本.

  2. 选择基本SDK

    您的软件可以使用操作系统版本中可用的功能,包括与基本SDK相对应的功能.默认情况下,Xcode将此设置为Xcode支持的最新操作系统.

规则是使用latest作为基本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上运行,但仍然可以利用更新的功能.