OSX Sandbox:根据操作系统版本启动不同的可执行文件

时间:2014-03-27 17:38:23

标签: macos osx-snow-leopard mac-app-store itunes-sdk ituneslibrary

我在Mac App Store中有一个应用程序。我试图支持用户回到Snow Leopard,但这变得越来越困难。

最近,由于iTunesLibrary.framework,我遇到了障碍,这个框架必须链接到主要的可执行文件,但这样做会在Sno​​w Leopard中运行时始终触发加载崩溃。

要解决此问题,我想编译我的应用程序版本,该版本不使用较新版本的OSX中的功能和框架。问题是,如何自动启动兼容性构建?

我正在考虑尝试将主要的可执行文件指向shell脚本,但我并不喜欢这个想法。我还想到主要的可执行文件是一个帮助程序,只需启动完整的应用程序,然后退出。我希望这会有效,但我担心它会被Apple批准。最后,我想知道应用程序包格式本身是否可以支持这种设置,可能是通过我不知道的CFBundleExecutable的高级使用。

有没有人走过这条路,你会建议什么?

1 个答案:

答案 0 :(得分:0)

尝试弱链接框架,有关Weak Linking and Apple Frameworks here的更多信息。然后,还要检查代码中的操作系统版本或任何- (BOOL)respondsToSelector:(SEL)aSelector的{​​{1}},以确定您可以调用的内容和不调用的内容。

要将Snow Leopard作为基础SDK,您需要一个旧的Xcode,并且会有麻烦提交到Mac App Store。