Domanda

Ho una domanda che voglio impacchettare (con alcuni file aggiuntivi) insieme all'interno di un'applicazione wrapper.

Letteralmente l'unica cosa che voglio fare è avere il lancio applicazione wrapper di un file di risorse (cioè come se avessi scelto:

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

nel terminale.

Fai senso? Ho pensato che questo dovrebbe essere semplice, ma io caouldn't trovare un modo semplice per farlo questo-- mia programmazione di cacao è limitata, per non dire altro.

Grazie in anticipo!

È stato utile?

Soluzione

Il programma esterno può utilizzare NSBundle per individuare il programma interiore all'interno fagotto del programma esterno.

Per eseguire il programma interno: Se si tratta di un'applicazione, utilizzare Launch Services o NSWorkspace ; se si tratta di uno strumento da riga di comando, utilizzare NSTask .

Altri suggerimenti

Un modo, se l'avvolta “applicazione” è solo uno script di shell o qualcosa del genere, è Platypus .

Se si tratta di un'applicazione effettiva (.app bundle), perché App A non fanno altro che lancio app B? Perché avere app A a tutti?

Ho un post sul blog su questo: Trasformare qualsiasi script di shell in un doppio cliccabile App . La voce parla di "iniziare con un pacchetto app vuoto" ... che si può ottenere utilizzando lo strumento Pashua detto, se non ricordo male ...

Solo per il gusto dei posteri (e se aiuta chiunque altro, ecco il codice completo che ho usato (all'interno del file 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];
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top