【问题标题】:How can I open an Xcode project in an older version of Xcode?如何在旧版本的 Xcode 中打开 Xcode 项目?
【发布时间】:2011-04-15 19:38:47
【问题描述】:

我需要在旧版 Xcode 中打开一个 Xcode 项目,以便在旧版 SDK 下构建。 “项目设置”中的部署目标选项是什么意思。这是否意味着我可以在 iPhone OS 3 设备的最新 iOS 4.3 SDK 上构建我的项目?旧版本 SDK 不支持的类中的一些功能如何?

【问题讨论】:

    标签: objective-c ios4 iphone-sdk-3.0 xcode3.2


    【解决方案1】:

    Base SDK 是编译您的应用所用的 iOS SDK API 版本。这意味着您的应用程序是使用该版本 iOS 的库构建的。正如 Black Frog 所说,您必须使用最新的 SDK 才能让您的应用在 App Store 上获得批准。

    部署目标是您的应用允许在其上运行的最低 iOS 版本。 (App Store 会阻止旧版本的 iOS 安装具有比该版本新的部署目标的应用。)

    如果您希望您的应用使用例如 Game Center(需要 iOS 4.1)并在 iOS 3.1.3 或更高版本上运行,那么您将使用 4.1 或更高版本的 Base SDK以及 3.1.3 的部署目标

    要处理不存在的类和方法,您应该在使用它们之前检查它们是否存在。这里是 a great blog post 管理不同版本的 iOS 和不同版本的 SDK。

    自 3.2 以来的所有 Xcode 项目都具有相同的内部格式。因此,您应该能够在旧版 Xcode 中打开 Xcode 项目。在 Xcode 3 中,您可以在项目的“获取信息”中看到项目格式版本。 (我还没有在 Xcode 4 中找到这个。)

    【讨论】:

    • 非常感谢但是我如何检查某些类或方法的存在?
    • @dpart4 - 此外,您不能将应用提交到 App Store,除非它的基本 SDK 是当前/最新的 SDK。部署目标可以是您想要支持的任何设备。 +1 给摩西。
    • 因此,如果我有基本 sdk 4.0 和部署目标 3.0,我的应用程序将在 ios 3 设备上运行而不会出现错误,尽管 ios 3 sdk 上没有某些功能或类?例如 MPMovieViewController 类
    • @dpart - 不。您需要在使用这些类之前检查它们,如果它们不存在,您将需要提供备用 UI 或至少一些解释该功能或旧版操作系统不支持功能。
    • @Moshe 谢谢!我无意中在苹果文档中发现了一篇关于兼容性的好文章developer.apple.com/library/mac/#documentation/DeveloperTools/…
    【解决方案2】:
    1. Xcode v4 和 v3 共享相同的项目格式,打开它应该没有问题。
    2. 根据您的代码,您必须检查它是否适用于较低版本的 SDK:

      1. 在项目中设置Build SDKDeployment target
      2. 构建和检查应该警告/失败的结果
      3. 请务必查看 Apple 文档,了解您是否未使用尚未现有的 API。
      4. 在使用该操作系统版本的真实设备上进行测试...(非常重要!!

    如果有一种神奇的方式来检查 iOS 兼容性而不是像这样手动,我很感兴趣 :)

    【讨论】:

    • @Moshe 我的英语可能很糟糕,这取决于我的 (french) 心情 ;)
    • 没问题。 (如果您想帮助翻译一些应用程序,请随时与我联系。)
    • 谢谢。我会检查你的建议!实际上,我需要确定 iPhone 的分辨率以正确设置自定义元素的图像,并且我正在使用 MPMoviePlayer 在线播放电影。在 ios 4 中,它比在 ios 3 中更加定制
    • @dpart 请注意,如果您以 iOS3 为目标,则可以通过使用最新的 SDK (Build SDK) 构建并针对较旧的 iOS (Deployment target )
    猜你喜欢
    • 2021-12-09
    • 2019-05-20
    • 2013-09-30
    • 2019-11-27
    • 1970-01-01
    • 2011-10-18
    • 2017-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多