为不同的OS版本上载多个可执行文件

时间:2013-08-12 08:31:07

标签: app-store mac-app-store

我们可以上传多个“.app”文件,每个文件用于不同的操作系统版本,例如版本10.7我有不同的应用程序版本,仅支持10.7及更高版本,而10.8版本支持不同的应用程序1.8以后? 我的下一个问题是否可能比Mac App store应用程序足够聪明,根据他/她的操作系统版本为用户提供该版本(如果使用10.7而不是下载10.7版本的应用程序,如果用户有10.8而不是下载10.8版本的应用程序用户机器)?? 类似是否适用于iOS(例如iOS 6和iOS 5等)? 如果Apple没有计划在他们的iOS和Mac应用程序商店中实现这些功能吗?

1 个答案:

答案 0 :(得分:0)

简短的回答是否定的。

你真的打算动态地这样做。例如,您可以弱化链接框架并测试特定objc类的存在。

gcc -weak_framework AVFoundation source.m

if (NSClassFromString(@"AVCaptureSession")) {
  // do stuff with AVFoundation here
}

您还可以测试特定对象是否响应您想要使用的选择器。

if ([myObject respondsToSelector:@selector(selectorYouWantToUse:)]) {
  [myObject selectorYouWantToUse:@"indeed"];
}

有时这些都不是正确的,在这种情况下你可以在

检查文件
/System/Library/CoreServices/SystemVersion.plist

我觉得将它包装在带有签名

的函数中很有用
bool macOSXVersionIsAtleast(int major, int minor, int bugfix);

(实施留给读者)。