Arquitectura del paquete OSX

Necesito comparar la arquitectura de un paquete y compararla con la arquitectura de las máquinas de un instalador; si coinciden, la instalación continuará; de lo contrario, se cancelará. Obtener la arquitectura es fácil usando macros; Quisiera saber si hay alguna forma de comprobar la arquitectura del paquete a instalar.

preguntado el 03 de mayo de 12 a las 16:05

2 Respuestas

Desde el caparazón, puedes hacer

otool -hv <path to mach-o image>

Las imágenes suelen estar en Contents/MacOS en aplicaciones o Versions/Current en marcos

contestado el 03 de mayo de 12 a las 17:05

Esto determinará si la aplicación actual (o cualquier paquete determinado como el mainBundle) comparte una arquitectura común con el paquete de destino. Requiere Mac OS X 10.5 para NSBundle executableArchitectures método.

NSArray *targetArch = p[NSBundle bundleWithPath:@"/path/to/bundle.bundle"] executableArchitectures];
NSArray *thisArch = [[NSBundle mainBundle] executableArchitectures];

if ([targetArch firstObjectInCommonWithArray:thisArch])
{
    // target bundle has architecture which matches current application
}

contestado el 03 de mayo de 12 a las 22:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.