Contexte de cette question :
J'ai construit une application avec LabVIEW pour ouvrir un fichier .tdms, et je sais qu'elle peut recevoir les arguments qui lui sont passés car le code suivant fonctionne parfaitement :
open -a /Application/My.app --args /path/to/file.tdms
Puisque la ligne de commande fonctionne, j'ai décidé d'associer .tdms à mon application afin de pouvoir double-cliquer sur le fichier pour l'ouvrir, et j'y parviens en modifiant My.app/Contents/info.plist
.
Lorsque j'essaie d'ouvrir un fichier en double-cliquant dessus ou en choisissant une application dans la liste "Ouvrir avec...", une fenêtre contextuelle s'affiche.
"My.app" est endommagé et ne peut pas être ouvert. Vous devez la déplacer dans la Corbeille.
Certains ont suggéré xattr -cr /Application/My.app
résoudrait le problème, mais cela ne fonctionne pas pour moi.
C'est pourquoi je voudrais savoir ce que fait MacOS en arrière-plan lors de l'ouverture d'un fichier. Comment les arguments sont-ils transmis à l'application ?
Informations complémentaires :
-
J'utilise "Open Application Reference" et Property Node dans LabVIEW pour recevoir les arguments qui sont transmis à mon application.
-
J'ai ajouté le code suivant dans
info.plist
pour associer le type de fichier à mon application :<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>