Как я могу ограничить этап сборки Run Script конфигурацией моего выпуска?

У меня есть сценарий оболочки, который я хотел бы запустить в конце фазы сборки моей цели. Однако я бы хотел, чтобы этот сценарий запускался только при сборке с конфигурацией выпуска. Как это может быть сделано? Спасибо!


person Reed Olsen    schedule 31.08.2010    source источник


Ответы (2)


if [ "${CONFIGURATION}" = "Release" ]; then
  echo Do something really release-like
fi

Сценарий будет запускаться в конце каждой конфигурации, но в этом случае он ничего не сделает, если только конфигурация не является Release (при условии, что все, что он делает, содержится в блоке тестирования).

person Jason Coco    schedule 31.08.2010
comment
Я только что обнаружил, что он не работает с многословными именами конфигурации. Он работает с выпуском, но не с внутренней бета-версией. - person Hedin; 03.03.2011
comment
@Hedin - это просто баш; если у вас есть переменная, состоящая из нескольких слов, вам нужно заключить переменную в кавычки. Таким образом, $ {КОНФИГУРАЦИЯ} становится $ {КОНФИГУРАЦИЯ}. Я обновлю ответ, включив это. - person Jason Coco; 03.03.2011
comment
Итак, я попробовал это со сценарием, который загружает в критицизм файл dysm. Что-то не работает, и xcode застревает на фазе, когда я добавляю оболочку if. Любые идеи? если [$ {КОНФИГУРАЦИЯ} = Хоккейное распределение]; затем APP_ID = xxxxxxxx API_KEY = xxxxxxxxx источник $ {SRCROOT} /GlideiPhone/Vendor/CrittercismSDK/dsym_upload.sh fi - person SAR622; 18.12.2013
comment
У меня есть конфигурации Debug, Release (для инструментов), Ad Hoc и App Store (с другой подписью кода), поэтому я изменил их на if [ "${CONFIGURATION}" != "Debug" ]; then.... - person Nicolas Miari; 14.03.2014
comment
Для условия if я хочу использовать значение #define TRUE / FALSE, хранящееся в файле .pch .. как я могу ссылаться на него в коде сценария? - person newton_guima; 07.04.2015
comment
@ skyline75489: Bash взаимозаменяемо использует = и ==. - person Sandy Chapman; 15.09.2016
comment
Можно ли сделать то же самое с флагами препроцессора? - person Justin Vallely; 20.09.2016
comment
Этот фрагмент не работал. Мне нужно было изменить == if [$ {CONFIGURATION} == Release] - person drasick; 15.03.2019

Самый простой способ сделать это - установить флажок «Запускать скрипт только при установке».

person Menno    schedule 16.03.2018
comment
+1 stackoverflow.com/questions/5913199/ - person darkheartfelt; 15.02.2019
comment
Установка отладки на реальном устройстве (сборка и запуск из Xcode) не считается установкой. Сценарий запуска запускается только при архивировании (проверено с Xcode 9). stackoverflow.com/questions/5913199/ - person darkheartfelt; 15.02.2019
comment
Это не сработает, если вы захотите создать приложение в Release конфигурации без его архивирования. Вопрос был явно о конфигурации Release. - person Legonaftik; 30.05.2019