【问题标题】:Is there a way to install older iOS SDKs in Xcode?有没有办法在 Xcode 中安装旧的 iOS SDK?
【发布时间】:2011-11-11 07:46:46
【问题描述】:

我想通过使用较旧的 SDK 对应用进行编译以测试较新的类和方法,从而确保它们具有一定的向后兼容性。但是,Xcode 仅适用于最新 iOS 版本的 SDK。

我已经下载并安装了 iOS 3.1.3 SDK (using the method described here) 并且工作正常。我的代码已满(不是那么满 :-) )的 __IPHONE_OS_VERSION_MAX_ALLOWED、__IPHONE_OS_VERSION_MIN_REQUIRED 等responsToSelector。

现在这适用于 iOS 3.1.3 SDK,但如果将来我想用 4.0 SDK 重复这个过程怎么办?是否有在最新 Xcode 中安装旧版 SDK 的一般流程?

【问题讨论】:

标签: iphone ios xcode backwards-compatibility


【解决方案1】:

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

其他方法包括将不同版本的 iOS 开发者工具安装在单独的 Developer_XYZ 目录中,或者使用较旧的 iOS 开发者工具安装(比如 Snow Leopard 和 Xcode 3.x,因为 Lion 可能只支持运行Xcode 4.x)。

【讨论】:

  • 还有一家公司,它的名字以 A 开头,真的很糟糕。由于 iOS 5 还没有推出,所以不支持至少 4.0 SDK 简直令人难以置信!
  • @Oliver - 你在说什么? Xcode 4 的当前稳定版本 4.1 附带 iOS 4.3 SDK。如果他们不支持当前版本的操作系统,怎么会有人向 App Store 提交任何东西?如果您说的是 Xcode 4.2 的测试版,您是否阅读了发行说明中“Xcode”下的第一段:developer.apple.com/library/prerelease/ios/#releasenotes/…?
  • @Brad Larson:我的意思是,自 iOS 5 未推出以来的所有 XCode 版本都应该至少包含一种支持 iOS 4.0 编码的方法:包括能够编译和检查任何 4.1 的 4.0 SDK或 4.2 调用,或使编译器能够就此类调用向您发出警告。如果不需要在项目首选项中指定 iOS 目标是什么?只是把它放在 AppStore 上?
  • @Oliver - Apple 在其发布的 SDK 中直接支持当前发布的操作系统版本。所有可以运行 4.0 的设备都可以运行 4.2,因此不需要支持到那个旧版本,并且 4.3 和 4.2 之间几乎没有什么不同。除了方法之外,操作系统版本之间还有其他更微妙的方面会发生变化,因此保证与操作系统版本兼容的唯一方法是使用运行该版本的设备针对它测试您的应用程序。信任模拟器和编译器是不够的。
  • @Brad Larson :我同意必须在设备上进行测试。但这只是过程的结束。你和一个团队一起工作吗?您是否告诉每个可能在世界各地的成员在每次应用程序崩溃时给您打电话,因为“太新”的调用并且因为您没有 3 个月的时间来手动检查每个代码调用?你有成千上万的下载吗?如果是这样,您是否同意忘记像一半没有更新设备的 iOS 用户,因为他们不能,或者因为他们不想或不知道该怎么做(我可以谈谈出现的电池问题吗? iOS 4.3) ?
【解决方案2】:

无论出于何种原因(我不得不这样做以调试 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-12
    • 2011-06-08
    • 2012-03-03
    • 2012-03-31
    • 2019-04-26
    • 1970-01-01
    • 2011-10-12
    • 1970-01-01
    相关资源
    最近更新 更多