我有一个应用程序,我想在一个包装器应用程序中捆绑(带有一些额外的文件)。
从字面上看,我唯一要做的就是让包装器应用程序启动一个资源文件(就像我输入的那样:
/path/to/Resources/Bundled.app/Contents/MacOS/executable
进入终端。
有意义吗?我认为这应该很简单,但我找不到一个简单的方法 - 至少可以说,我的可可编程是有限的。
提前致谢!
答案 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 Services或NSWorkspace;如果它是命令行工具,请使用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];