我有一个应用程序我想在一个包装应用程序中捆绑在一起(与一些附加文件)。
从字面上看,我唯一想做的就是让包装应用程序启动一个资源文件(即,就好像我输入了:
/path/to/Resources/Bundled.app/Contents/MacOS/executable
进入终端。
有道理?我认为这应该很简单,但我找不到简单的方法来做到这一点——至少可以说,我的可可编程是有限的。
提前致谢!
一种方法,如果包装的“应用程序”只是一个 shell 脚本或其他东西,那就是Platypus。
如果它是一个实际的应用程序(.app 包),为什么应用程序 A 除了启动应用程序 B 什么都不做?为什么有应用程序A?
我有一篇关于此的博文:Turn any shell script into a double-clickable app。该条目提到“从一个空的应用程序包开始”......如果我没记错的话,你可以通过使用提到的 Pashua 工具来获得它......
您的外部程序可以使用 NSBundle 在外部程序的包中定位内部程序。
运行内部程序:如果是应用程序,请使用Launch Services或NSWorkspace;如果它是命令行工具,请使用NSTask。
只是为了后代(如果它对其他人有帮助,这里是我使用的完整代码(在 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];