我刚刚安装了Lion和Xcode 4.1。如何添加较旧的SDK,以便在iPhone / iPad模拟器中构建和运行4.1或4.2? Xcode 4.1仅附带iOS 4.3 SDK。
Lion是否有某种最低版本的SDK?
谢谢,
答案 0 :(得分:27)
实际上 可以添加较旧的SDK,只要您仍然可以使用较旧的SDK获取较旧版本的Xcode。它有时也很有用:当你这样做时,你会发现在编译期间而不是在运行时可能使用的不受支持的常量和方法。这是如何做到的。
使用旧版SDK获取旧版Xcode。 Apple iOS开发人员中心目前列出了带有Xcode 3.2.6下载的4.3 SDK。
安装dmg并通过终端打开隐藏在dmg中的Packages文件夹:
open / Volumes / Xcode \ and \ iOS \ SDK / Packages /
双击所需SDK版本的pkg文件。我一直在寻找iPhoneSDK4_3.pkg,但除了4.3之外,还发现了与iPhoneSDK3_0.pkg一样旧的软件包。因此,如果你知道在哪里可以找到它,可能仍然可以将旧的SDK与App Store下载打包(我没有)。
让它安装在自己选择的文件夹中,因为你无法强制它安装在Applications / Xcode.app / Contents / Developer(这是Developer文件夹现在的位置)
您将在所选卷中的Platforms文件夹中找到安装的软件包。将相关SDK移动到Xcode.app中的Developer文件夹。你可能不得不使用sudo:
sudo mv /Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs /
重新启动Xcode,您应该会看到Base SDK选项中列出的新(旧)SDK。耶!
截至2013年9月12日更新
如果您尝试添加的“旧SDK”捆绑在Xcode 4.3或更高版本中,添加SDK就像从开发中心链接下载Xcode一样简单,该链接显示“正在寻找旧版本的Xcode?” (当前指向here),安装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/
对于4.3之前的Xcode版本的SDK,较旧的步骤仍然相关。
我发现这恰好可以让Xcode 5 GM编译构建带有旧iOS 6 UI的版本,即使部署在iOS 7设备上也是如此。在UI重新设计之前用于修复错误。也就是说,必须有一种更简单的方法来在iOS 7设备上获得iOS 6 UI。
答案 1 :(得分:8)
你做不到。但是,您可以单击文件导航器中的顶级条目。它将带您进入应用程序设置。转到名为Build Settings的选项卡,将iOS部署目标更改为您要支持的任何iOS版本(您支持的最早版本)。
答案 2 :(得分:8)
打开Xcode并打开首选项(Xcode - >首选项菜单)。单击“下载”图标,然后查看“组件”选项卡。应该提供从3.0到5.1的所有版本。只需单击“安装”即可使用。
答案 3 :(得分:6)
对于Mac OS 10.8和XCode 4.5,这些答案都不适用于我。但是现在事情安装在Applications文件夹下,管理起来要容易得多。
选项#1:在安装新的XCode之前,通过重命名来保存较旧的XCode副本很容易。然后,您可以在新版本上使用Product-> Preform Action-> Run Without Building来测试更新的设备或更新的模拟器。
选项#2:如果您真的想在较新的XCode中使用较旧的SDK进行构建,那么您只需使用finder复制SDK即可。您需要在Applications下安装旧版本的XCode才能使用。在下面的示例中,我在安装XCode 4.5之前将XCode 4.4重命名为XCode_old。注意:您可以右键单击.app文件并选择显示内容以获取这些文件,或者只使用终端窗口中的cp。
from: /Applications/Xcode_old.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk
to: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
然后,iOS 5.1将在Build Settings下显示为Bask SDK。你可以为模拟器做同样的事情:
from: /Applications/Xcode_old.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk
to: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/
答案 4 :(得分:1)
你不能,但是对于插入运行旧版iOS的设备(你应该进行适当的测试),它会很好。
答案 5 :(得分:1)
您必须在较旧版本的Xcode中运行您的应用程序,该版本与旧版iOS配合使用。我在/Developer-3.2.5/
下安装了3.2.5。我不得不说它比Xcode 4快10倍...你可以在这里下载旧版本:http://iphonesdkdev.blogspot.com/2010/04/old-versions-of-iphone-sdk.html
答案 6 :(得分:0)
我在使用SDK 4.3的Snow Leopard的Xcode 4.02中遇到了类似的问题。我想在iPhone 3G上进行测试,但iOS4.2是该设备的最新版本(也是正确版本)。为了“看到”并在Scheme中运行该设备,我必须更改iOS部署目标的Build Settings,如上所述。 (顺便说一下,你还必须限制关闭iPhone以让Xcode安装应用程序:))
答案 7 :(得分:0)
除了Steven的回答,您还可以找到旧版本的XCode - 包括较旧的SDK: