Antecedentes de esta pregunta:
He construido una aplicación por LabVIEW para abrir el archivo .tdms, y sé que puede recibir los argumentos que le pasan porque el siguiente código funciona perfectamente:
open -a /Application/My.app --args /path/to/file.tdms
Como la línea de comandos funciona, decidí asociar el .tdms a mi aplicación para poder hacer doble clic en el archivo para abrirlo, y lo consigo modificando My.app/Contents/info.plist
.
Y las cosas se ponen interesantes, cuando intento abrir un archivo haciendo doble clic o eligiendo la aplicación en la lista "Abrir con...", aparece una ventana emergente
"Mi.app" está dañado y no se puede abrir. Debes moverla a la Papelera.
Algunas sugerencias xattr -cr /Application/My.app
solucionaría el problema, pero a mí no me funciona.
Por eso quiero saber qué hace realmente MacOS en segundo plano cuando se abre un archivo. ¿Cómo pasa los argumentos a la aplicación?
Información adicional:
-
Utilizo "Open Application Reference" y Property Node en LabVIEW para recibir los argumentos que pasan a mi aplicación.
-
He añadido el siguiente código en
info.plist
para asociar el tipo de archivo a mi aplicación:<key>CFBundleDocumentTypes</key> <array> <dict> <key>CFBundleTypeExtensions</key> <array> <string>tdms</string> </array> <key>CFBundleTypeRole</key> <string>Viewer</string> <key>CFBundleTypeName</key> <string>National Instruments TDMS File</string> <key>CFBundleTypeIconFile</key> <string>icon.icns</string> </dict> </array>