Objective c 确保我没有使用任何不可用的API';OSX上有什么?
我正在用Xcode 6编写OSX应用程序,但希望我的应用程序支持OSX 10.7及以上版本。不幸的是,Xcode 6只包含10.10和10.9版本的SDKObjective c 确保我没有使用任何不可用的API';OSX上有什么?,objective-c,xcode,macos,cocoa,Objective C,Xcode,Macos,Cocoa,我正在用Xcode 6编写OSX应用程序,但希望我的应用程序支持OSX 10.7及以上版本。不幸的是,Xcode 6只包含10.10和10.9版本的SDK 确保我没有使用任何会在10.7和10.8上崩溃的不可用API的最佳方法是什么 目前,没有简单的方法可以做到这一点,因为正如您所说,10.9是您可以指定的最远的版本。在Xcode 7发布之前(我相信这只会对更新的SDK有所帮助),您几乎没有选择,一点也不方便: 用10.7和Xcode4或5(10.7SDK随附的任何一个)装载一个便宜的Mac,并
确保我没有使用任何会在10.7和10.8上崩溃的不可用API的最佳方法是什么 目前,没有简单的方法可以做到这一点,因为正如您所说,10.9是您可以指定的最远的版本。在Xcode 7发布之前(我相信这只会对更新的SDK有所帮助),您几乎没有选择,一点也不方便:
ibtool
读取。幸运的是,这些天来,我只是对这个应用程序的生产版本的代码发布了错误修复,因为最近的重点是下一个主要版本,幸运的是,它可能针对10.9及以上版本
我要再次说“这显然很糟糕。”虽然它没有得到官方支持,但可能值得尝试使用旧Xcode中的SDK。也就是说,获取一份Xcode 4的副本,深入到应用程序包中查找每个Xcode隐藏SDK的位置,然后将10.7SDK复制或符号链接到Xcode 6中。我还没有具体做到这一点,但我在Xcode 4中使用了Xcode 3中的10.6 SDK。没错,我总是忘记这种方法。主要是因为这一切都很粗糙(而且很容易破碎)。:-)但是很好的理解。如果在前缀或预编译头中说
#define MAC_OS_X_VERSION_MAX_ALLOWED MAC_OS_X_VERSION_10_7
,而使用10.9 SDK呢?@JWWalker在目标构建设置中选择的SDK已经定义了这个宏。除非先取消定义,否则会收到警告。然后。。。因为目标生成设置覆盖了它,所以没有发生任何事情。我认为您关于目标生成设置覆盖它的说法是不对的。在使用10.8 SDK时,我尝试在前缀顶部定义MAC OS X X U版本允许的1070,据我所知,MAC OS X U版本允许的
在编译源代码中实际定义为1070。header AvailabilityMacros.h将定义MAC\u OS\u X\u VERSION\u MAX\u ALLOWED
为SDK版本(如果尚未定义)。这有点麻烦,但您可以从中尝试。我也听说过一些好东西,但从未尝试过。