有没有一种方法在Xcode中安装旧版iOS SDK?

10

我想通过使用旧版SDK编译我的应用程序来测试新类和方法,以确保我的应用程序具有向后兼容性。但是,Xcode仅提供最新iOS版本的SDK。

我已经下载并安装了iOS 3.1.3 SDK(使用这里描述的方法),这个方法运行良好。我的代码中到处都是 __IPHONE_OS_VERSION_MAX_ALLOWED,__IPHONE_OS_VERSION_MIN_REQUIRED 和 respondsToSelector 等。

这对于iOS 3.1.3 SDK目前可以运行,但如果我将来想要重复此过程,并使用4.0 SDK怎么办?是否有一般的流程可以在最新的Xcode中安装旧版SDK版本?


此前已在此处回答过(https://dev59.com/BXA75IYBdhLWcg3w7t16)。 - progrmr
1
@progrmr:我没有看到有提到在已安装4.3 SDK的XCode 4上安装SDK 3.2或SDK 4的方法。 - Oliver
1
请查看此帖子:http://stackoverflow.com/questions/7145001/upgrading-xcode-4-0-1-to-4-1-giving-compilation-error-for-iphone-sdk/7145080#7145080 - Daniel
2个回答

11

在Xcode 4上无法安装旧的3.1 SDK。您可以将部署目标设置得更低,以允许测试在运行旧操作系统版本的设备上进行,即使当前SDK版本较新。目前唯一确保向后兼容并同时运行更新版本的Xcode的方法是保留一个运行iOS 3.x的设备,并在该设备上进行测试。(因为据称旧的模拟器/工具有时会允许在具有相同版本操作系统的实际设备上无法运行的API)。

其他方法包括在单独的Developer_XYZ目录中安装不同版本的iOS开发人员工具,或者保留一个带有旧版iOS开发人员工具安装(例如Snow Leopard与Xcode 3.x),因为Lion可能只支持运行Xcode 4.x。


3
然后有一家以A开头的公司真的很糟糕。自从iOS 5发布以来,不支持至少4.0 SDK就太难以置信了! - Oliver
1
@Oliver - 你在说什么?当前稳定版本的Xcode 4.1带有iOS 4.3 SDK。如果不支持当前版本的操作系统,任何人怎么能提交应用商店呢?如果你在谈论Xcode 4.2的测试版,那么你是否阅读了发行说明中“Xcode”下的第一段文字:http://developer.apple.com/library/prerelease/ios/#releasenotes/General/RN-iOSSDK-5_0/_index.html? - Brad Larson
@Brad Larson:我的意思是,自从iOS 5以来的所有XCode版本都应该至少包括一种支持iOS 4.0编码的方法:包括4.0 SDK以便能够编译和检查任何4.1或4.2调用,或使编译器能够警告您有关此类调用。如果没有这样做,那么在项目首选项中指定iOS目标的必要性是什么?只是为了将其放在AppStore上吗? - Oliver
@Oliver - 苹果直接在其发布的SDK中支持当前正在运输的操作系统版本。 所有可以运行4.0的设备都可以运行4.2,因此没有必要支持到那个旧版本,并且4.3和4.2之间几乎没有什么不同。 除了方法之外,操作系统版本之间还有其他更微妙的方面发生变化,因此您可以保证与操作系统版本兼容的唯一方法是使用运行该版本的设备测试您的应用程序。 相信模拟器和编译器是不够的。 - Brad Larson
1
@Brad Larson:我认为在设备上进行测试是必须的,但这只是整个过程的结束。你是否与一个团队合作?你会告诉每个成员,无论他们身在何处,每次应用程序因“太新”的调用而崩溃时都要给你打电话吗?你的应用程序已经有数千次下载了吗?如果是这样,你是否同意忽略那些没有更新设备的一半iOS用户,因为他们不能更新,或者因为他们不想或不知道如何更新(我可以谈谈iOS 4.3带来的电池问题吗)? - Oliver
显示剩余2条评论

6

如果由于某种原因(我曾经因为调试 Apple 的错误而这么做过),您仍需要将旧 SDK 安装到现有的 Xcode 中,请按照以下步骤操作:

  • 安装旧版 Xcode
  • 将旧版 Xcode SDK 复制到新版 Xcode 中 示例 (从 /old/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk 复制到 /new/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs)
  • 重新启动您的“新”Xcode
  • 您将在构建设置选项(基本 SDK)中看到旧的 SDK

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