为旧版OS X版本编译应用程序

时间:2013-08-24 15:44:44

标签: xcode macos cocoa osx-lion osx-mountain-lion

我最近向AppStore提交了(我的第一个)app。它适用于OS X 10.8并使用一些10.8功能,如ShareKit。我也想支持OS X 10.7,以便为10.7用户提供支持。当然,这意味着10.7版本不具备ShareKit功能。但是我不确定使用什么编译设置使它们都可用,这样10.8用户就可以使用这些功能而10.7用户将看不到它们。

  1. 我尝试将Base SDK更改为10.7,但不会对其进行编译。
  2. 我尝试将部署目标更改为10.7,保留Base SDK 10.8。它编译了,但我不确定这是否是正确的做法。也没有10.7机器来测试它。
  3. 如果案例2正确,我如何检查代码并禁用菜单项?

1 个答案:

答案 0 :(得分:4)

数字2是正确的做法,但能够将sdk更改为10.7是非常好的,因为一般情况下如果因为缺少类或方法而无法编译它将无法运行。

您需要重新编写代码以动态检测是否可以使用...

Class Some108Class = NSClassFromString(@"The10_8Class"); //will be Nil in 10.7

[var respondsToSelector:@selector(someMethod)]; // returns no if someMethod isn't available 
[SomeClass instancesRespondToSelector:@selector(someMethod)];//same