Як я можу обмежити фазу збірки "Запустити сценарій" моєю конфігурацією випуску?


138

У мене є сценарій оболонки, який я хотів би запустити наприкінці фази збирання своєї цілі. Однак я хотів би, щоб цей скрипт запускався лише тоді, коли я будував з конфігурацією релізу . Як це можна зробити? Дякую!

Відповіді:


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

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


1
Щойно я виявив, що це не працює з багатословними іменами конфігурації. Він працює з "Release", але не з "Internal Beta".
Гедін

4
@Hedin - це просто баш; якщо у вас є багатослівна змінна, вам потрібно оточити змінну лапками. Отже $ {CONFIGURATION} стає "$ {CONFIGURATION}". Я оновлю відповідь, щоб включити її.
Джейсон Коко

15
У мене є "Налагодження", "Випуск" (для інструментів), "Ad Hoc" і "App Store" (з різним підписом коду), тому я змінив це на if [ "${CONFIGURATION}" != "Debug" ]; then....
Nicolas Miari

1
Для умови, якщо я хочу використовувати #define TRUE / FALSE, що зберігається у файлі .pch .. як би я посилався на нього у коді сценарію?
newton_guima

2
Чи можна виконати те саме за допомогою прапорців перед процесором?
Джастін Валлелі

15

Найпростіший спосіб зробити це - встановити прапорець "Запустити сценарій лише при установці".



4
"Установка налагодження на реальному пристрої (збірка та запуск з Xcode) не вважається" встановленням ". Сценарій запуску виконується лише під час архівації (тестується з Xcode 9)." stackoverflow.com/questions/5913199 / ...
darkheartfelt

2
Він не працюватиме, якщо ви хочете створити додаток у Releaseконфігурації, не архівуючи його. Питання було чітко про Releaseконфігурацію.
Легонафтік
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.