好的,所以我的情况如此:
我需要做些什么来确保它能够显示为" 10.6及更高版本"兼容应用程序商店?
我设法将基本SDK 设置为10.8
或10.9
并将部署目标设置为{{ 1}}。这样就够了吗?
PS 我也尝试使用 Base SDK 设置为10.6
进行编译,但是有很多错误需要修复,如果我能避免它,它会更好。
所有想法?
答案 0 :(得分:2)
是;使用部署目标为10.6的10.9 SDK可以正常工作。
您可能会发现必须在运行时确定条件代码路径,可能基于respondsToSelector
,这需要一些#pragma
才能成功编译。
答案 1 :(得分:2)
部署目标定义了应用在运行时所需的最低操作系统版本 Base SDK定义了编译时可用的API功能级别。
因此,在构建可在10.6及更高版本上运行的应用程序时,您可以使用10.9作为Base SDK 当您的应用程序在10.6计算机上运行时,您必须确保避免使用10.7 / 10.8 / 10.9 API的代码路径。
正如trojanfoe已经指出的那样,您可以使用respondsToSelector:
来检查某个类/方法是否可用。
另一种方法是使用NSAppKitVersionNumber:
if (floor(NSAppKitVersionNumber) <= NSAppKitVersionNumber10_8)
最新SDK的NSAppKitVersionNumber常量可以在AppKit Release Notes中找到。 有关详细信息,请参阅Apple的SDK Compatibility Guide。