J'ai besoin de définir un certain nombre de variables d'environnement qui peuvent être vues par les applications GUI (i.e. Xcode). Lorsque l'on travaille à partir d'un terminal, c'est trivial et il suffit d'ajouter un certain nombre de variables d'environnement. export
commande à mon .bash_profile
par exemple
export BOOST_INCLUDE=~/boost/boost-XXXX/boost
Malheureusement, les applications GUI ne voient pas les valeurs définies dans le champ .bash_profile
. J'utilise Catalina et il semble qu'Apple modifie le mécanisme à chaque mise à jour de MacOS. De nombreux guides en ligne sont obsolètes....
Cet article : http://www.dowdandassociates.com/blog/content/howto-set-an-environment-variable-in-mac-os-x-launchd-plist/ suggère que launchctl
devrait faire ce dont j'ai besoin, mais même l'exemple simple suivant ne fonctionne pas :
Dans un terminal :
/bin/launchctl setenv FOO BAR
Fermez ensuite le terminal et ouvrez-en un nouveau
Vérifier la valeur :
echo $FOO
Le résultat devrait être
BAR
Mais elle n'est pas réglée. Notez qu'il est également désactivé dans le terminal d'origine, je ne suis donc pas convaincu que la commande /bin/launchctl setenv FOO BAR
fait quoi que ce soit.
Note : Il s'agit de définir la variable d'environnement pour les applications GUI et PAS seulement pour le terminal.
0 votes
Avez-vous besoin de définir ces variables en particulier dans Xcode ? Parce qu'il y a une façon plus spécifique de définir les variables env dans Xcode.
0 votes
Je cherche un moyen de définir les variables de telle sorte que je n'aie pas à les définir manuellement pour chaque projet. Ma solution actuelle consiste à utiliser des liens symboliques pointant vers la dernière version de la bibliothèque 3rd part que j'utilise (par exemple boost ou range-v3). De cette façon, dans les projets Xcode, je peux utiliser les liens et les ajuster lorsque je mets à jour la bibliothèque,
0 votes
Avez-vous essayé de démarrer Xcode à partir du Terminal comme ceci :
open /Applications/Xcode.app
? Xcode devrait hériter des variables définies dans ce shell.0 votes
@jaume êtes-vous sûr que cela fonctionne. Open se lancera à partir du bureau
0 votes
@mmmmmm Le dossier à partir duquel vous exécutez
open
dans le terminal n'a pas d'importance tant que les variables d'environnement sont définies. L'OP devrait confirmer si cela fonctionne pour lui.0 votes
Discussion connexe : stackoverflow.com/q/25385934/877069