Pregunta

Tengo una aplicación que quiero paquete (con algunos archivos adicionales) juntos dentro de una aplicación de envoltura.

Literalmente lo único que quiero hacer es tener el lanzamiento de aplicaciones envoltura de un archivo de recursos (es decir, como si lo hubiera escrito:

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

en el terminal.

tiene sentido? Pensé que esto debe ser simple, pero caouldn't encontrar una manera simple de hacer esto- mi programación de cacao se limita, por decir lo menos.

Gracias de antemano!

¿Fue útil?

Solución

Su programa externo puede utilizar NSBundle para localizar el programa interno dentro paquete del programa externo.

Para ejecutar el programa interno: Si se trata de una aplicación, utilice Launch Services o NSWorkspace ; si se trata de una herramienta de línea de comandos, utilice NSTask .

Otros consejos

Una forma, si la envuelta “aplicación” es solamente un guión o algo así, es Platypus .

Si se trata de una aplicación real (paquete .app), ¿por qué aplicación A no hacer nada, pero la aplicación de lanzamiento B? ¿Por qué tener aplicación A en absoluto?

Tengo un blog sobre esto: Convierte cualquier script de shell en un doble se puede hacer clic aplicación. La entrada menciona "empezar con un paquete de aplicación vacío" ... que se puede obtener mediante el uso de la herramienta Pashua mencionado, si no recuerdo mal ...

Sólo por el bien de la posteridad (y si ayuda a alguien más, aquí está el código completo utilicé (dentro del archivo 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];
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top