是否可以创建一个二进制文件,并且根据 OS X 版本,它的行为是否有所不同?
关于如何实现这一点的任何想法(Cocoa 和 Xcode 友好)?
您的应用程序的主要可执行文件可以是在所有版本上运行的小程序,询问 OSX 版本,然后加载包含所需应用程序版本的包或启动捆绑到应用程序包中的第二个可执行文件。
从用户的角度来看,捆绑加载选项应该更容易执行并且看起来更流畅,因为只有一个应用程序会运行。使用另一种方法,一个应用程序会在启动另一个应用程序时启动然后关闭,因此它可能会产生视觉上的副作用。
Wain 是对的.. 使用一个应用程序并让它根据操作系统版本加载捆绑包
就像是
int main(args) {
NSBundle *bundle = nil;
if(osVersion < 10.5)
bundle = [NSBundle bundleWithURL:pathToBundleFor105InAppsBundle];
else
bundle = [NSBundle bundleWithURL:pathToBundleFor106andUpInAppsBundle];
[bundle load];
Class appDelegateClass = NSClassFromString(@"AppDelegateClass");
DDAppDelegate = [[appDelegateClass alloc] init];
[[NSApplication sharedApplication] setDelegate:DDAppDelegate];
status = NSApplicationMain(argc, (const char **)argv);
}