2009-05-31 7 views
23

Il semble que le paramètre d'environnement $ PATH de xcode soit différent de mon environnement shell utilisateur.

D'où xcode obtient-il le paramètre $ PATH et quel est le meilleur moyen de l'ajouter au chemin de recherche?

Répondre

6

XCode obtient ses variables d'environnement de la même manière que les autres processus OS X, à partir de ~/.MacOSX/environment.plist.

Vérifiez developer.apple.com/qa/qa2001/qa1067.html pour plus de détails sur la façon de régler les choses.

+2

Hmmm ... Je n'ai pas un fichier comme ça. Existe-t-il une version globale de ce qui s'applique à tous les utilisateurs? – lajos

+0

Ce fichier est excellent pour certaines choses, mais ne semble pas fonctionner pour la variable PATH. –

16

si vous écrivez une phase Run Shell Script construire, vous pouvez simplement faire:

PATH=${PATH}:/opt/local/bin 

ou tout à l'intérieur du contenu du script.

+0

vous remercie, c'est ce que je fais actuellement, mais j'espère trouver un moyen "global" qui s'appliquerait à l'ensemble du processus de construction – lajos

+1

Cela ne fonctionne pas si bien, par exemple. scripts ruby. Surtout quand vous avez besoin de Rbenv dans le chemin. – tcurdt

+0

@tcurdt Cela a fonctionné pour moi: 'PATH = $ {CHEMIN}:/usr/local/var/rbenv/shims' –

2

Si vous parlez spécifiquement sur le executable search path environment variable named PATH, alors il y a quelques endroits qu'il est défini:

  • En your shell settings si elle est un outil de ligne de commande. Selon votre shell, cela peut être ~/.cshrc, ~/.profile, ~/.bash_profile, etc.
  • Dans le fichier environment.plist mentionné précédemment. Si vous êtes dans un débogueur, il s'agit de whatever gdb uses. Je crois que gdb va lire les commandes de ~/.gdbinit si elle existe. XCode vous permet de définir des variables d'environnement dans Info page for executables.
+0

Cela n'aidera pas si vous devez transmettre des chemins de recherche à un script qui essaie de trouver des exécutables dans des endroits comme/usr/local/bin. Ceci est une déficience dans le support de Xcode pour les cibles de construction externes (Xcode 4.2 à ce jour). –

1

Xcode ne s'intéresse pas à l'environnement de votre shell.

Jetez un coup d'œil à NSProcessInfo; et faire un NSLog pour voir ce qui se passe.

Si vous souhaitez appliquer un chemin à tous les programmes graphiques, vous devez configurer le fichier ~/.MacOSX/environment.plist. comme décrit.

La méthode recommandée pour définir les variables d'environnement est en fait dans/etc/paths et etc/paths.d, bien qu'elles ne soient pas non plus récupérées par Xcode.

J'ai demandé à ce sujet here.

3

Dans Xcode 5, vous pouvez ajouter votre PATH en tant que variable à une cible ou aux paramètres du projet.

  1. Ajouter une variable personnalisée avec le signe + sur le haut de la page
  2. Modifier le nom de la variable à PATH et ajoutez votre valeur préférée (par exemple /usr/local/bin pour une installation par défaut de homebrew.

Target Build Settings

+3

J'ai juste essayé cette solution avec Xcode 6, et il semble que l'EDI écrase silencieusement la variable PATH avec des valeurs dans le dossier Xcode.app. Donc ça ne marche plus. Existe-t-il une solution alternative ou un moyen de forcer Xcode à utiliser l'ensemble PATH ici? – dada

+1

Xcode 6 ajoute le chemin de ses propres outils avant le vôtre. Ainsi, par exemple, si vous dites que vous voulez que PATH soit '/ usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin', Xcode le définira en fait'/Applications/Xcode. app/Contents/Développeur/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin. C'est dommage si vous voulez que votre PATH surpasse Xcode, mais c'est une bonne solution si vous voulez juste ajouter '/ usr/local/bin' ou un autre répertoire au PATH. –

-2

Essayez d'ouvrir votre projet Xcode depuis le terminal, cela a fonctionné pour moi: open some.xcodeproj

Au lieu d'ouvrir xcode, puis de charger le projet ou de double-cliquer dessus.

Je sais ... stupide

+0

cela ne fonctionne pas. Je suppose que l'ouverture du déclencheur s'ouvre en arrière-plan – gre

0

La solution la plus simple est d'ajouter la variable PATH dans Xcode.

enter image description here

+0

Si quelqu'un se demandait où cela se trouvait, vous pouvez cliquer sur "modifier le schéma". :RÉ –