创建简单的cocoa应用程序包装器

时间:2010-01-30 12:42:10

标签: cocoa wrapper bundle launcher

我有一个应用程序,我想在一个包装器应用程序中捆绑(带有一些额外的文件)。

从字面上看,我唯一要做的就是让包装器应用程序启动一个资源文件(就像我输入的那样:

/path/to/Resources/Bundled.app/Contents/MacOS/executable

进入终端。

有意义吗?我认为这应该很简单,但我找不到一个简单的方法 - 至少可以说,我的可可编程是有限的。

提前致谢!

4 个答案:

答案 0 :(得分:3)

一种方法是,如果包装的“应用程序”只是一个shell脚本或其他内容,则为Platypus

如果它是一个实际的应用程序(.app包),为什么app A什么都不做,只能启动应用程序B?为什么要申请A?

答案 1 :(得分:1)

我有一篇关于此的博文:Turn any shell script into a double-clickable app。该条目提到“以空的应用程序包开始”...如果我没记错的话,您可以使用提到的Pashua工具获得...

答案 2 :(得分:1)

您的外部程序可以使用NSBundle在外部程序包中找到内部程序。

运行内部程序:如果是应用程序,请使用Launch ServicesNSWorkspace;如果它是命令行工具,请使用NSTask

答案 3 :(得分:1)

只是为了后人(如果它对其他人有帮助,这里是我使用的完整代码(在AppDelegate.m文件中):

NSString *appName = @"";
NSString *bundledApp = [[NSBundle bundleWithPath:[[NSBundle
                                                           mainBundle] pathForResource:appName ofType:@"app"]]
                          bundlePath];
NSWorkspace *launchApp = [[NSWorkspace alloc] init];
NSLog(@"Launching %s", bundledApp);
[launchApp launchApplication:bundledApp];
[launchApp release];

// Make Launcher terminate (if it serves no other purpose)
[NSApp terminate:nil];