Как заставить XCode запустить скрипт перед зависимостями?

Сценарий:

я имею TargetA, которое является приложением для iOS. Это приложение использует статическую библиотеку, скомпилированную TargetB, Очевидно, что TargetB это зависимость TargetA, а также TargetB всегда построен раньше TargetA, Все идет нормально.

Теперь я хочу запустить скрипт TargetA построен, но даже раньшеTargetB,

Что я пробовал:

  1. Добавление цели "агрегат" / цель внешней сборки и создание зависимости TargetA, Это наполовину работает: Xcode работает setup а также TargetB в то же время, так TargetB может быть построено слишком рано. Не достаточно хорош.
  2. То же самое, но указав в схеме, не строить параллельно. Это работает, но это пустая трата времени, так как есть другие цели, которые могут быть построены параллельно.
  3. Запустите скрипт в pre-action Построить шаг внутри схемы. Это работает, но кажется неправильным (почему? Вывод с этого шага не попадает в журнал сборки; поэтому, возможно, я не собираюсь использовать его таким образом?).

Что я не хочу делать:

Добавить скрипт как зависимость TargetB, Это будет работать; тем не мение, TargetB на самом деле происходит из другого подпроекта, и в контексте его создания параметры сценария еще не известны (в основном это корневой каталог TargetAпроект).

Я что-то пропустил, или я должен согласиться на № 2 или № 3 выше?

РЕДАКТИРОВАТЬ: в варианте № 2, выше, изменение порядка зависимостей (в моем случае, между Setup а также TargetB не помогает - Xcode по-прежнему выбирает порядок произвольно.

1 ответ

Решение

Запуск сценария как pre-action Шаг сборки внутри схемы - лучший способ выполнить то, что вы хотите. Обычно этот подход используется для настройки базы номеров сборки проекта в соответствии с состоянием исходного кода ( пример). Что касается захвата выходных данных сценария, к сожалению, единственное, что вы можете сделать, - это перенаправить стандартный вывод сценария в файл журнала. Этот файл журнала может быть частью вашего проекта, поэтому его будет легко просматривать из Xcode.

Другие вопросы по тегам