安装新版Xcode后,旧版SDK消失了

12

为什么在安装新的Xcode版本和新的iPhone SDK时会删除旧的SDK?现在我们有v4,我需要进行哪些设置才能使应用程序仍然适用于3.x?

谢谢。


似乎“如何修复”已经解决了。在测试版期间,我们发现“为什么”的问题比想象中更加复杂,请参考:https://dev59.com/FHA75IYBdhLWcg3wrrNS。 - Clay Bridges
5个回答

7
尽管“Zoul”已经简明地回答了这个问题,但我将尝试详细阐述这两个设置,并指出一些有用的文档,以帮助那些对此情况感到陌生的人。
1. 基本SDK版本:这表示程序编译所基于的SDK版本。这可以从项目或目标的“构建设置”中设置。您可以在代码中使用引入自该版本之前的苹果API代码,编译器将知道所有符号并且能够编译而无任何问题。
2. 部署目标:这是您声明的用户设备上应安装的最低iOS版本,以运行您的代码。此设置可在项目的“信息”部分和特定目标的“摘要”部分中找到。现在,重要的是要理解,如果您正在使用由苹果在较新版本中引入的API代码,则您的代码不会自动在旧版本的iOS设备上平稳运行。这些可能是苹果在后来的版本中引入的新类/方法/框架。您必须通过编写必要的条件代码并提供替代代码路径来优雅地降级,以适应没有较新API的旧iOS版本。处理版本不兼容性取决于您。

关于该主题的苹果文档可以在 "SDK 兼容性指南" 中找到。

要了解不同版本iOS的更改,请参考 "iOS有什么新功能"。

该主题也在 "iOS开发指南" 中讨论,在"构建和运行应用程序"部分下查看。请参考子部分"指定运行时环境"。


7

将基础SDK设置为4.0,部署目标设置为3.x。或者,在现代条件下,将基础SDK设置为最新版本,部署目标设置为您需要的任何版本。


3
如果你有类似于Time Machine的系统备份(最好有!),你可以从备份中复制旧的SDK,位于/Developer/Platforms/iPhoneOS.platform/Developer/SDKs和/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs - 然后重新启动XCode,就可以开始使用了。

3
如果您在将部署目标设置为所需的SDK时仍然遇到问题,则需要下载该SDK。幸运的是,Xcode也可以帮助我们解决这个问题:
只需查看Xcode左上角的模拟器选择器并选择“更多模拟器”。它将打开一个类似下面图片的页面: Download SDK view 只需选择您需要测试应用程序的SDK即可。

1

3.2.3最后的测试版删除了所有其他SDK,因为太多人试图发布使用测试版SDK开发的应用程序,这些应用程序将无法被接受。我猜GM仍然在做同样的事情。

如果您想开发4.0、3.2和3.0(加上3.0、3.1、3.1.2和3.1.3)的应用程序,请按照以下步骤进行:

  • sudo /Developer/Library/uninstall-devtools –mode=all(这将卸载当前的XCode安装)
  • 然后在默认文件夹(/Developer)中安装旧版XCode(3.2 final)
  • 然后在其他文件夹(/DeveloperBeta)中安装新版XCode(3.2.3 GM)
  • 这样你就会拥有两个版本。可以从/Developer/Applications/Xcode.app或/DeveloperBeta/Applications/Xcode.app启动XCode

您可以将基本 SDK 设为 4.0,而将部署目标设为其他版本,从而在所有 OS 版本上开发。 - user342492
1
你说得对,就像zoul所说的那样。但是,如果你在SDK设置为4.0且不同的部署目标下使用MPMoviePlayerViewController(在SDKs 3.2以下不可用),你是否会收到所有警告/错误?我更喜欢直接获取这些信息,而不是查找其可用性等内容。 - Allisone

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