【问题标题】:Backward compatibility for iOS build SDKsiOS 构建 SDK 的向后兼容性
【发布时间】:2015-01-18 10:36:39
【问题描述】:

我想运行支持 iOS 5.0 及更低版本的旧应用程序。它有一个部署目标 5.0。事情是这样的:

我已将系统升级到 Yosemite OS 10.10 和我拥有的最低 Xcode 版本 5.0。现在,当我查看基础 SDK 时,我看到了下图。

正如您所见,iOS 7.0 显示的构建最少的 SDK。没有其他低版本。

我听说或读过一些你也可以在这里使用低版本 SDK 的地方。通过将 SDK 复制到某个地方或任何其他方式。我想在这里了解一种更好的方法。

编辑:

我需要一个在 Xcode 4.6 中为 iOS 5.0 开发的应用程序。因此,为了检查应用程序流程,我需要下载 Xcode 4.6。是这样吗?我们可以不在新版本的 Xcode 中包含旧的 SDK 吗?

【问题讨论】:

  • SDK 7.0 不支持 iOS 5.0 及更低版本吗?
  • 是的。但是存在一些兼容性(如弃用)。所以我需要基本 SDK 作为 iOS 6.0。我知道 Apple 已经声明应该从 iOS 7.0 进行构建,但这里有一个奇怪的要求。
  • 最好的办法是拥有一台 iOS 5 设备进行测试和像 Deploymate 这样的工具
  • Apple 没有声明 build 应该至少从 iOS7 开始,Apple 已经声明 build 必须从 iOS7 开始。没有理由为 AppStore 上可用的应用程序使用以前的 SDK。如果您有特殊原因,请解释清楚,以便人们找到解决此问题的方法。但是,对我来说,唯一的解决方案是下载以前的 SDK 并将其复制到 xcode SDK 文件夹中
  • 您的问题令人困惑。您说您有一个支持 iOS 5.0 和早期的旧应用程序。你希望它现在支持什么?

标签: ios ios7 xcode5 osx-yosemite


【解决方案1】:

您不应尝试使用旧版本的 Xcode 构建您的应用程序。 Yosemite 上唯一支持的 Xcode 版本是 Xcode 6.1,它仅随 iOS 8 SDK 一起提供。如果您希望代码在其中运行,您应该为最新的 SDK 构建,并将 Deployment Target 设置为 iOS 5(通过使用 NSClassFromStringrespondsToSelector: 检查优雅地降级)

【讨论】:

  • 应用程序无法启动,我将如何构建它?顺便说一句,我只需要检查应用程序流程(工作与否),不需要构建它。
  • 我不明白你的评论。如果您有一个已经编译好的二进制文件,那么您可以使用最新版本的 Xcode 将其复制到您的设备并进行测试,并且不涉及 SDK。如果您没有二进制文件,那么您需要构建应用程序。最好的方法是使用最新版本的 Xcode 和 iOS SDK。
  • 是的,我知道。先生,我也遵循同样的原则。这里的后果是我有一个源代码(非常旧),它不适用于较新的 Xcode。 (例如,如果您知道 iOS 7 何时发布,Xibs 最初不受支持,并且 Xcode 5 中的布局不匹配)。同样,现在我也有类似的问题——需要 Xcode 4.6,而我没有。所以我的简单问题是任何人都知道 Xcode 提供了 iOS 6 和 7 SDK 的混合支持。
  • 不,它不能。 Xcode 在其发布时仅支持最新的 iOS SDK。如果您按照您的建议将旧的 SDK 复制到较新的 Xcode 中,起初它可能看起来可以工作,但您最终会遇到很多不可预知的问题。不过,Xcode 4.4.1 仍可从 developer.apple.com 下载。您可能需要较旧的 OS X 才能运行它...
  • 感谢您的建议。是的,我认为最好遵循。
猜你喜欢
  • 2012-12-15
  • 1970-01-01
  • 1970-01-01
  • 2021-11-11
  • 2015-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-22
相关资源
最近更新 更多