10 votes

MacOS, différences entre l'exécution d'une application groupée et l'exécution de l'exécutable de l'application groupée.

Quelqu'un peut-il expliquer les différences entre OSX et l'exécution d'une application groupée en faisant l'une des choses suivantes :

  • en double-cliquant dessus
  • recherchez-le et exécutez-le à partir de Spotlight
  • ouvrir /Application/MyApp.app

ou simplement en exécutant son exécutable dans le Terminal :

  • $ /Application/MyApp.app/Contents/MacOS/myapp (le binaire exécutable)

5voto

ithos67 Points 881

Dans la plupart des cas, il n'y a pas de différence. Cependant, à l'intérieur de chaque paquet d'applications se trouve un fichier Info.plist qui contient des informations sur l'application qui sont utiles (principalement) à Mac OS X (les types de fichiers qu'elle traite, etc.).

Mais le fichier Info.plist peut également contenir des informations sur l'environnement dans lequel l'application doit fonctionner. Par exemple, le fichier Info.plist peut contenir des variables d'environnement qui doivent être définies avant le lancement de l'exécutable. Si vous lancez l'exécutable vous-même (sur la ligne de commande), ces variables ne seront pas définies et le comportement de l'application pourrait être différent.

EDIT : Pour aller plus loin, si vous cliquez avec le bouton droit de la souris sur une application et que vous choisissez "Show Package Contents", puis que vous allez jusqu'à "Contents:MacOS" et que vous double-cliquez sur l'icône de l'exécutable dans le dossier de l'application. que vous contournerez également les services de lancement et les informations du fichier Info.plist seront ignorées. Vous pouvez donc faire dans le Finder ce que vous faites en ligne de commande (sans options de ligne de commande, bien sûr).

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X