【问题标题】:Best practice for OSX 10.x backwards compatabilityOS X 10.x 向后兼容性的最佳实践
【发布时间】:2011-07-06 05:36:18
【问题描述】:

我对 OS X 开发比较陌生(使用 XCode)

我最近在朋友的 MacBook 上测试了一个我一直在使用的应用程序,但遇到了问题。

我在运行 Snow Leopard 10.6.5 的 MacBook 上构建了该应用程序,而我朋友的 Mac 运行的是早期版本(我认为是 Leopard 10.5.x)。该应用没有启动,只是显示一条消息,指出操作系统对于该应用来说太旧了。

应用本身非常基础,不需要任何第三方库或 API。

确保可以使用同一个安装程序的最佳方法是什么?我不需要能够处理比 10.4 更早的任何东西。

【问题讨论】:

    标签: xcode macos


    【解决方案1】:

    您需要将项目或应用程序的 Mac OS X 部署目标设置(键名:MACOSX_DEPLOYMENT_TARGET)更改为您想要支持的最旧操作系统。

    这里是关于如何更改目标的基本构建设置的文档:http://developer.apple.com/library/mac/documentation/ToolsLanguages/Conceptual/Xcode4UserGuide/Building/Building.html#//apple_ref/doc/uid/TP40010215-CH9-SW2

    这里是文档的链接,其中包含为操作系统的多个版本构建的更多信息。 我找不到在线链接,所以这是您本地安装的文档的链接。 file:///Library/Developer/Documentation/DocSets/com.apple.adc.documentation.AppleiPhone4_0.iPhoneLibrary.docset/Contents/Resources/Documents/documentation/DeveloperTools/Conceptual/XcodeProjectManagement/210-Building_Products/building.html#//apple_ref/doc/uid/TP40002693-SW38

    这是摘录:

    您可以开发可在不同版本的 iPhone OS 或 Mac OS X 上部署并利用其功能的软件,包括与您正在开发的版本不同的版本。这种能力称为交叉开发。

    为了利用交叉开发,您必须为您计划定位的操作系统版本安装 Mac OS X SDK。然后,在您的项目中,指定构建产品时要使用的 SDK。您还可以指定软件必须在其上运行的最早的 Mac OS X 版本。

    在某些情况下,Apple 会为即将发布的操作系统版本分发 SDK 作为种子,让您可以在未来版本的 Mac OS X 向公众发布之前准备您的应用程序。

    重要提示:Xcode 中的交叉开发需要原生目标。

    要将您的 Xcode 项目设置为针对多个 Mac OS X 版本,请执行以下步骤:

     选择一个 SDK。 在 Groups & Files 列表中选择您的项目,然后选择 File > Get Info。在 Project Info 窗口的 General 窗格中,从 Base SDK for All Configurations 弹出菜单中选择 SDK。当您选择一个 SDK 时,Xcode 会根据与指定操作系统版本相对应的一组头文件在您的项目中构建目标,并链接到该 SDK 中的存根库。这允许您在开发计算机上构建产品,这些产品可以在 SDK 所针对的操作系统版本上运行。您的软件可以使用系统版本中可用的功能,包括您选择的版本。

    您还可以通过 Base SDK (SDKROOT) 构建设置指定 Base SDK。

     选择 Mac OS X 部署版本。如果您的软件必须在一系列操作系统版本上运行,请为每个需要 Mac OS X 部署操作系统的目标选择一个 Mac OS X 部署操作系统。部署操作系统标识可以运行软件的最早系统版本。默认设置为 SDK 版本对应的操作系统版本。
    为目标设置部署版本:

    在 Groups & Files 列表中选择目标并打开 Info 窗口。单击构建以打开构建窗格。

    b.找到部署目标 (MACOSX_DEPLOYMENT_TARGET) 或 iPhone OS 部署目标 (IPHONEOS_DEPLOYMENT_TARGET) 构建设置(取决于您正在开发的平台),然后从值列的弹出菜单中选择部署操作系统。

    对于每个目标,提供一个考虑到所选 SDK 的前缀文件。 要将 SDK 中的伞式框架头文件用作前缀文件,请将适当的 #include 指令添加到目标的前缀文件而不是直接设置伞形框架标题的前缀标题路​​径。 成功开发适用于多个 Mac OS 版本的软件还有很多工作要做。如需了解更多信息,请参阅 SDK 兼容性指南。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-05
      • 2012-11-06
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多