Xcode 9 выполняет пользовательскую команду на чистой - PullRequest
0 голосов
/ 25 июня 2018

Мне нужно запустить собственный сценарий оболочки на шаге очистки в Xcode (точнее, в Xcode 9). У меня есть набор make-файлов, которые строят мои зависимости, сначала я вызывал этот скрипт на этапе запуска сценария, но затем выходные данные этих make-файлов никогда не очищались. Поэтому я подумал, что если я обработаю переменную Xcode environemnt ${ACTION} в этом скрипте, он также сможет их очистить. Вопрос в том - скрипт не вызывается на чистую.

Было несколько сообщений по этому поводу, вот что я попробовал:

  1. Создание дополнительной совокупной цели. Я добавил цель и поместил скрипт, который обрабатывает ${ACTION} из среды сборки, но этот скрипт никогда не выполняется после очистки. При очистке в журнале сборки есть только строка Clean.remove clean.
  2. Создание цели внешней системы сборки (в некоторых старых постах указана цель внешнего сценария, но я не смог найти ее в Xcode 9). Затем это позволяет мне выполнить собственный сценарий (если я заменяю команду /usr/bin/make по умолчанию на мой сценарий), но в этом случае переменная окружения ${ACTION} не устанавливается (я проверял это в выводе сборки, он всегда имеет export ACTION= в нем), поэтому я не могу различить чистую и строительную фазы.

Что касается совокупного целевого объекта, у него есть свойство выходных файлов, если я их укажу - может ли это заставить Xcode их очистить?

1 Ответ

0 голосов
/ 12 апреля 2019

Немного зомби, но ближе всего к проблеме, которую я вижу.Это похоже на ошибку в новой системе сборки.Используя старую систему сборки, действие установлено.Здесь есть два варианта:

  1. Использовать систему сборки Legacy.
  2. Использовать отдельные внешние цели, которые вызывают ваш скрипт и вручную передавать требуемый параметр действия, и менять схемы вручную при необходимости.
...