如何将CLI目标添加到XCode中的GUI项目3.2.6
问题描述:
我开始研究构建OS X应用程序的项目,其中一个组件是文件扫描器&解析器。到目前为止,这是我一直在努力的主要部分。为了测试它,在我深入研究这个项目之前,我想建立一个命令行程序,我可以提供字符串和/或文件,以确保它实际上正确扫描&解析。所以我使用了Add New Target和选择的Cocoa Shell Tool。在该目标中,我添加了解析器的相关文件,确保它链接'Cocoa.framework'...如何将CLI目标添加到XCode中的GUI项目3.2.6
当我试图预编译'/ Developer/SDKs/MacOSX10时,我得到了11,000多个错误.6.sdk /系统/资源库/框架/ AppKit.framework /头/ AppKit.h”。
我完全在错误的轨道上如何添加命令行目标?
(有人问之前,没有时,Xcode 4是不是一种选择。这台机器是不会离开10.6.8任何时间很快。)
答
嗯,我从来没有发现如何做到这一点,但我找到了合理的替代品。
在Info.plist中,创建一个LSEnvironment字典,其中包含一些键/值对。我用'GUILaunch = true'。此环境变量只有在launchd启动时才可用,而不是在shell中直接启动时可用。
在main.m文件:
int main(int argc, char *argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSDictionary *env = [[NSProcessInfo processInfo] environment];
NSString *gui = [env objectForKey:@"GUI_Launch"];
if ((gui!=nil) && [gui isEqual:@"true"]) {
[env release];
[gui release];
return NSApplicationMain(argc, (const char **) argv);
} else {
[env release];
[gui release];
return main2(argc, argv);
}
[pool release];
}
现在,标准的GUI位被称为,或MAIN2被调用,基于它是如何启动。