Переменные Xcode

103

Я знаю, что в Xcode можно получить переменные, которые PROJECT_DIRможно использовать в некоторых ситуациях, например, на этапе сборки сценария выполнения. Мне интересно, можно ли получить тип сборки (например, Release или Debug ). Любые идеи?

Аллин
источник

Ответы:

148

Лучшим источником, вероятно, является официальная документация Apple. . Конкретная переменная, которую вы ищете, - КОНФИГУРАЦИЯ.

Сморган
источник
8
Мне нравится, как Xcode отказывается отображать эту страницу, если вы набираете «настройки сборки» в поле поиска - вы получаете ДРУГОЙ тип настройки сборки, без ссылки на эти переменные. То же самое, если поставить «переменные сборки». Кто-то должен научить Apple, как писать поисковый алгоритм :)
Адам
24
Если вы пытаетесь создать «этап сборки сценария выполнения», вы можете запустить этот сценарий, набрав «env» (без кавычек) в качестве первой строки сценария оболочки bash (или эквивалентную команду для оболочки, которую вы re using) и создайте свой проект. Это выведет все доступные вам переменные среды. Вы можете использовать это вместе с документацией, чтобы убедиться, что вы получаете ожидаемые данные.
Райан Х.
3
Думаю, я потратил полчаса, пытаясь найти документы, перечисляющие / объясняющие переменные среды, доступные для скриптов. Я отправил запрос на «улучшение», спрашивая, почему они не могут просто поместить туда одну из этих круглых кнопок с вопросительным знаком со ссылкой на соответствующую страницу справки. Отличное предложение HZC, хотя я бы хотел, чтобы в этом не было необходимости.
Брайан
3
Также печально, что базовый $ PROJECT_DIR нигде не упоминается в этом официальном документе. Я думаю, это просто псевдоним (лучше названный) для $ SRCROOT.
Ricardo Sanchez-Saez
4
Apple любит периодически переставлять всю свою документацию и разрывать все существующие ссылки. Кому-то придется искать новую ссылку.
smorgan
20

Вот список переменных среды . Я думаю, ты можешь захотеть CURRENT_VARIANT. См. Также BUILD_VARIANTS.

Naaff
источник
Итак, когда я использую char * cv = getenv ("CURRENT_VARIANT"); Я получаю NULL. Что мне не хватает?
Brooks
1
Другой ответ правильный. Это не так. КОНФИГУРАЦИЯ - это то, что они хотят.
Baxissimo
И это даже не полный список ... полуправда
Evils