versiones una sistemas sierra restaurar pro operativos mojave macbook mac high fábrica formatear desde cómo correctamente como cero caracteristicas macos installation file-association info.plist

una - ¿Cómo asociar el tipo de archivo con la aplicación MacOS X sin iniciarlo primero?



macos mojave (3)

Para ello, escriba apple-I en el archivo con el que desea asociar la aplicación, use la pequeña casilla llamada "Abrir con ..." y seleccione su aplicación. Puede marcar la pequeña casilla debajo de "Cambiar todo ..." para hacer el cambio de todos los archivos similares.

Me gustaría asociar la última versión instalada de mi aplicación Mac OS X con cierto tipo de archivo. Un poco de experimentación muestra que el archivo info.plist parece ser leído e interpretado por el sistema operativo al iniciar la aplicación, no cuando se arrastra el paquete de la aplicación al disco. La documentación de Apple sobre la configuración en tiempo de ejecución no dice mucho sobre ese tema.

¿Hay alguna manera, usando una imagen .dmg simple como medio de instalación, para asegurarme de que el sistema asocie ese tipo de archivo particular con mi aplicación recién instalada sin tener que iniciarla primero?

EIDT: Debo aclarar que quiero que esto se haga automáticamente durante la instalación (no quiero que mis usuarios tengan que hacerlo ellos mismos).

¡Gracias!


Cuando un usuario arrastra una aplicación a la carpeta de Aplicaciones, el sistema debe registrarla con Servicios de Lanzamiento automáticamente. Consulte Registro de la aplicación en la Guía de servicios de lanzamiento.


Aunque la información de Tony es correcta -también explicada aquí- (que al arrastrar el MyApp.app a Applications se registrará con Launch Services automáticamente usando información del archivo Info.plist xml y asociaciones de archivos de configuración), no responde completamente la pregunta sobre Asociación de archivos.

Si las personas siguen estas instrucciones, tendrán su aplicación abierta, pero no se abrirá ningún archivo específico.

[...] asegúrese de que el sistema asocie ese tipo de archivo particular con mi aplicación recién instalada

La asociación de archivos es un poco diferente en Mac cuando se compara con otras plataformas. La mayoría de las plataformas, cuando *.foo está registrado en myapp , cuando se hace doble clic en MyFile.foo , despacha algo de la siguiente manera:

/path/to/myapp MyFile.foo

Y aunque es libre de usar esta técnica en línea de comandos en una Mac con éxito, simplemente no funcionará a través de Finder y tampoco funcionará haciendo doble clic en el archivo asociado en el escritorio.

Preguntado y respondido aquí:

https://.com/a/19702342/3196753

Algunos afirman que este enfoque es ventajoso sobre el manejo conservador de archivos abiertos en main() porque "solo abre una instancia de la aplicación". Independientemente del razonamiento detrás de esta decisión, complica aún más las cosas desde una perspectiva de C ++.

  • El PDF de 108 páginas disponible aquí (advertencia, esto está marcado como "legado", puede producirse linkrot).
  • Documentación relevante del portal para desarrolladores de Apple disponible aquí .
  • El enfoque de Qt está documentado aquí .

De qt.io:

Cuando un usuario hace doble clic en un archivo en el Buscador, Finder envía un evento de Apple a la aplicación asociada con el archivo y le pide que abra el archivo. Si la aplicación no se está ejecutando, se inicia y luego se realiza la solicitud. La ventaja de este enfoque es que solo hay una instancia de la aplicación ejecutándose.

En Windows, esto generalmente se hace iniciando la aplicación y pasando el nombre del archivo como un argumento de línea de comando. Ver muchos archivos resulta en el lanzamiento de muchas instancias de la misma aplicación. (El componente QtSingleApplication, disponible como Qt Solution, resuelve este problema).

Qt 3 no proporciona una abstracción para el manejo de eventos de Apple, pero es fácil agregar soporte para ellos en su aplicación usando la API de Carbono de Mac. Supongamos que tenemos una aplicación llamada XpmViewer que muestra archivos XPM (un formato de imagen X11). La declaración de clase de ventana principal sigue: [fragmento de código eliminado]

(BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename

Manejo del evento abierto del archivo Mac OS X ANTES de que C ++ main () ejecute el controlador AEInstallEventHandler al que no se llama al inicio