Frage

Ich habe eine Anwendung I (mit einigen zusätzlichen Dateien) zusammen in einer Wrapper-Anwendung bündeln will.

Wörtlich das einzige, was ich tun möchte, ist die Wrapper-Anwendung starten Sie eine Ressource-Datei (das heißt, als ob ich eingegeben hatte:

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

in das Terminal.

Sinn? Ich dachte, das sollte einfach sein, aber ich caouldn't einen einfachen Weg finden, um this-- mein Kakao Programmierung zu tun beschränkt ist, gelinde gesagt.

Vielen Dank im Voraus!

War es hilfreich?

Lösung

Ihr äußerte Programm kann NSBundle verwenden, um das innere Programm innerhalb des äußeren Programms Bündel zu finden.

Um das innere Programm ausführen: Wenn es eine Anwendung, verwenden Sie Launch Services oder NSWorkspace ; wenn es ein Kommandozeilen-Tool, verwenden Sie NSTask .

Andere Tipps

Ein Weg, wenn die verpackte „Anwendung“ ist nur ein Shell-Skript oder etwas, ist Platypus .

Wenn es eine tatsächliche Anwendung (.app-Bundle), warum App A nichts anderes tun als Einführung App B? Warum haben app A überhaupt?

Ich habe einen Blog-Post bis auf diese: Schalten Sie alle Shell-Skript in einen Doppel klickbare App . Der Eintrag erwähnt „mit einem leeren App Bundle starten“ ..., die Sie mit dem Pashua Werkzeug bekommen erwähnt, wenn ich mich richtig erinnere ...

Nur aus Gründen der Nachwelt (und wenn es jemand anderes hilft, hier ist der vollständige Code I (in der AppDelegate.m Datei verwendet wird):

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];
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top