在Xcode 6上安装iOS 7 SDK是否可行?

35

我已经安装了Xcode 6,但是意识到我只能开发iOS8。 我知道这个beta开发套件是为开发iOS 8 beta版本而设计的,但我目前没有时间来开发它,但希望在开发当前iOS 7应用程序时利用一些Xcode的新功能。

我该如何在xcode 6上安装iOS 7 SDK?

5个回答

34

似乎如果您将先前安装的Xcode中相关的SDK建立符号链接到Xcode 6 Beta目录,则Xcode 6将能够使用它。假设您的机器上仍然有Xcode 5.1.1,请在终端中尝试以下操作:

ln -s /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk /Applications/Xcode6-Beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk

这应该是链接到 iPhone 的 iOS 7 SDK(而非模拟器),允许您在 Xcode 6 Beta 中选择 iOS 7 作为基本 SDK。如果您想为模拟器执行此操作,请将 iPhoneOS.platform 替换为 iPhoneSimulator.platform

注意: 现在您已经有了 iOS 7 SDK,并不意味着它会构建成功。我个人遇到了问题,因为 Xcode 6 Beta 使用的是 Apple LLVM 6.0 编译器,显然与我正在尝试构建的某些内容不兼容。

参考:https://dev59.com/82gu5IYBdhLWcg3wTVU6#11424966


1
能否让Xcode 6 Beta使用Apple LLVM 5.1? - ankushg
1
对于那些还没有完全理解的人,值得注意的是:如果您为iOS7 SDK构建(即,“部署目标”),那么运行iOS8的设备将使用旧的框架并且(几乎)与尚未升级的设备相同。因此,如果您不需要任何iOS8功能,则可以安全地坚持使用旧的SDK。 - Hari Honor
6
奇怪的是,在将符号链接添加到我的Xcode文件夹后,我在Xcode左上角的目标选择器中看到了两个完全相同的设备名称,并附带一些信息(iOS版本号、型号、设备标识)。根据我选择的哪个条目,无论我选择哪个基础SDK,我的应用程序都可以正常工作或者不能正常工作。有人有相同的经历吗? - Christian
2
苹果正在推动仅使用iOS 8 SDK:https://developer.apple.com/news/?id=10202014a - Carl
2
这种技术仍然适用于在Xcode7中使用Xcode 8.x SDK。 - Kyle Robson
显示剩余5条评论

3
我发帖是为了让有需要的人能够受益:我想在运行iOS 7.1的iPhone上,通过XCode 6.0.1调试我的应用程序。在设置页面中,之前的iOS版本没有被列出,无法选择作为基础SDK/部署目标。(我使用的是OS X 10.10 Yosemite)。我安装了XCode 6.0.1和Xcode 5.0.1,并将“/Application/XCode501.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk”复制到“/Application/XCode601.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/”目录下。现在,我可以通过XCode 6.0.1运行iOS 7应用程序了。

Joe M +1 我对macosx10.8 sdk做了同样的事情,结果非常完美。 - mandeep-dhiman

2

我成功更改了部署目标,并在我的iOS7 iPhone 4s上安装了同样的内容。您可以通过这种方式进行所有开发,然后使用5.1.1来创建相关的构建。即使您可以,在这个测试环境中也不建议为生产构建应用程序。


我只是将开发目标更改为iOS 7.0,然后它就可以工作了。+1 - Luc
10
部署目标并不会改变项目构建所使用的SDK版本。决定构建SDK版本的是“基础SDK”设置。对于Xcode 6,仅默认提供iOS 8。 - ThomasW
我知道,我的回答更多是针对内容“我安装了Xcode 6,但意识到我只能开发iOS8。”而不是标题,这才是他真正的问题。即使他可以,也没有使用旧SDK构建的好理由。 - Fernando Mazzon

2

重复一下Christian对Ziewvater回答的评论,以使其更加突出:

奇怪的是,在将符号链接添加到我的Xcode文件夹后,我在Xcode左上角的目标选择器中看到我的设备名称和一些信息(iOS构建编号、型号、设备标识)出现了两次。根据我选择的两个条目中的哪个条目,我的应用程序运行良好或不良,无论我选择哪个基础SDK。?!有人有同样的经历吗?

这正是我的经验!我和我的团队曾经为了理解为什么有些版本可以工作而有些版本不能工作而苦恼。

看起来苹果必须在您从列表中选择错误的设备时忽略基础SDK(或目标...或其他事情)。


我看到了同样的事情。其中一个设备的“副本”运行起来就像是使用iOS7构建的,而另一个则像是使用iOS8构建的(我的模拟器也是如此)。 - moliveira
有没有这个问题的解决方案? - Morten Holmgaard
@MortenHolmgaard 解决办法是在XCode中选择正确的设备(对于我的情况是第一个设备)。如果您正在使用像AppCode这样的第三方工具,它只显示“不正确”的设备,那么您就没有运气了。 - Benjamin Dobell

0

在Xcode 6.1.1中(窗口 -> 首选项 - 下载),您可以安装iOS 7.1模拟器。不幸的是,它不会安装iOS 7.1 SKD。如果您将部署目标设置为7.1,则所有构建都没有任何问题。但请注意,您需要自行检查与7.1的兼容性(SDK仍为8.1)。无论如何,在模拟器中应该能够看到所有运行时问题。我使用这种方法来为我的iPhone 4使用Swift构建,其中iOS 7.1.2是最后一个可用版本。(只需不使用仅适用于新设备的任何类即可:-))


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接