2015-10-20 6 views
2

Я использую следующий скрипт для запуска XCode (7.0.1 7A1001) на OSX Йосемити 10.10.5:XCode не распознает переменные окружения

export FOO=bar #this should not be necessary, but just in case 
launchctl setenv FOO bar #should make it visible to all GUI applications (=XCode) 
open -a xcode 

я затем открыть рабочее пространство с двумя проектами: App1 и App2. В обоих проектах я положил $(HOME)/$(FOO) в Путь поиска заголовков.

  • В App1 он разрешен к /Users/ohads/bar, как и ожидалось.
  • В App2 разрешено /Users/ohads/ - обратите внимание, как изменяется переменная HOME, но переменная FOO нет.

Что здесь происходит? Почему расхождение? Как я могу сделать FOO работы в App2 - есть ли какой-то специальный флаг или декларация, которую я пропускаю?

BTW, как будто это не достаточно странно, App1 работает даже тогда, когда я использую только export (в отличие от launchctl, который является то, что следует использовать для приложений с графическим интерфейсом, видя, как export должны влиять только денежные приложения).

+0

Привет! Какую версию OSX вы используете? – Arseniy

+0

@ Арсений добавил к вопросу –

+0

Вы уверены, что у вас нет 'FOO', определенного где-то в настройках App2? –

ответ

7

Похож, что это связано с new XCode 7 behavior. Для того, чтобы XCode использовать переменные окружения следующая команда должна быть выдана:

$ defaults write com.apple.dt.Xcode UseSanitizedBuildSystemEnvironment -bool NO 

После этой команды, как и exportlaunchctl работы (в соответствии с комментарием chepner в). Я могу только догадываться, что он работал в App1, потому что он был создан в старой версии XCode.

Смежные вопросы