OS X 10.x向后兼容性的最佳实践

时间:2011-07-06 05:36:19

标签: xcode macos

我对OS X开发相对较新(使用XCode)

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

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

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

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

1 个答案:

答案 0 :(得分:7)

您需要将项目或应用程序的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

这是一个指向文档的链接,其中包含为多个OS版本构建的更多信息。 我找不到在线链接,因此这是您本地安装的文档的链接。 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的未来版本发布给公众之前使用它们。< / p>      

重要:Xcode中的交叉开发需要本机目标。

     

要设置Xcode项目以定位多个Mac OS X版本,请执行以下步骤:

     

选择SDK。在“群组与群组”中选择您的项目。文件列表并选择文件&gt;获取信息。在“项目信息”窗口的“常规”窗格中,从“基本SDK for All Configurations”弹出菜单中选择SDK。当您选择SDK时,Xcode会根据与指定版本的操作系统对应的标题集在您的项目中构建目标,并链接该SDK中的存根库。这允许您在开发计算机上构建可以在SDK所针对的操作系统版本上运行的产品。您的软件可以使用系统版本中可用的功能,包括您选择的功能。

     

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

     

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

     

a。在“群组与群组”中选择目标文件列表并打开信息窗口。单击“生成”以打开“生成”窗格。

     

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

     

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