В Lion (и предыдущих выпусках) это было в .MacOSX/environment.plist
. После обновления до 10.8 файл все еще там, но переменные не принимают.
Я также попытался добавить их в, /etc/launchd.conf
и они будут отображаться в терминале, но не в приложениях с графическим интерфейсом (как моя IDE).
/etc/launchd.conf
?Ответы:
Я задал этот вопрос и на форумах разработчиков Apple, и получил официальный ответ.
источник
Я знаю, что это старый вопрос, но я подумал, что хотел бы указать, что в Yosemite
/etc/launchd.conf
больше не работает (что подтверждается справочной страницей). Так что вот альтернатива.Запустите редактор AppleScript, введите команду, подобную этой:
(добавьте столько строк, сколько хотите)
Теперь сохраните (⌘S) как Формат файла: Приложение . Наконец, откройте « Настройки системы» → « Пользователи и группы» → « Элементы входа» и добавьте новое приложение.
источник
Как вы обнаружили, больше не используется файл environment.plist, переменные, хранящиеся в Info.plist в виде строк LSEnvironment, устанавливаются только launchd .
Вы не можете рассчитывать на то, что они установят общую переменную среды, которую установит терминал, если вы будете вызывать вашу программу непосредственно из терминала / оболочки. Хорошей новостью является то, что
open -a
команда запускает launchd для запуска, поэтому переменные будут установлены согласованно для среды приложения, если не для среды локальной оболочки.источник
Установка переменных окружения
/etc/launchd.conf
- это то, что нужно: каждое приложение, запущенное после перезагрузки локальными оболочками, Finder или Spotlight, наследует эти переменные - я тщательно протестировал это с Mountain Lion 10.8.3.2 предостережения:
ssh
похоже, ведет себя так - понимаете ... почему удаленные оболочки через ssh НЕ наследуют среду ... )источник
/etc/launchd.conf
больше не поддерживается со времен Yosemite. См. Apple.stackexchange.com/questions/106355/…Попробуй
launchctl setenv NAME VALUE
. Я не знаю, если / чем он отличается от редактированияlaunchd
.conf, но он работает для меня как в терминале, так и в приложениях с графическим интерфейсом. ПодробнееОбратите внимание, что это не выживает после перезагрузки. Вот способ это исправить .
источник