Как отобразить вывод компилятора или вывод пользовательских шагов сборки при сборке с xcode? - PullRequest
33 голосов
/ 24 марта 2011

Как посмотреть выходные данные компилятора из пользовательских шагов сборки (до или после действия)?

Ответы [ 5 ]

27 голосов
/ 24 марта 2011

Вы найдете (и можете наблюдать во время сборки) полный вывод сборки в Log Navigator. Это самая правая иконка из маленьких значков чуть ниже кнопок Run и Build.

15 голосов
/ 02 мая 2011

Вывод перед действием по крайней мере появляется в system.log и виден в Console.app.

4 голосов
/ 21 ноября 2016

РЕДАКТИРОВАТЬ: , как указано в комментарии ниже, этот ответ работает только для сценариев фазы сборки, а не сценариев до и после действия.


В Xcode 8 вам нужно выбрать свою последнюю сборку в «Navigator -> Report Navigator». В основной области вы сможете увидеть полный журнал сборки, включая ваш вывод.

Navigator selection

Вот простое эхо "Hello world"

Log

4 голосов
/ 25 марта 2011

Согласно моему ответу здесь ( Это нормально для XCode не обнаруживать, если предварительное действие не удалось? ), это проблема, которая обсуждалась на форумах разработчиков. Ненулевое состояние сценария до / после действия, по-видимому, не оказывает влияния, и выходные данные, кажется, не вносят его в какие-либо журналы.

2 голосов
/ 28 августа 2013

Итак, я нашел путь к обоим:

  1. Показать вывод из сценариев перед сборкой
  2. Остановить сценарий сборки в случае ошибки сборки

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

Предупреждение Количество хаков должно быть близко


Установите скрипт сборки, который автоматически обрабатывает перекачку вывода в 2 разных файла ... 1 для обычных журналов и один для stderr.Или используйте mine (я разместил в своем блоге, потому что кажется, что обнаружение кода переполнения стека не подходит для сценариев оболочки.)

Затем вы должны вызвать этот сценарий на этапе предварительной сборки схемы, например так:*

"${PATH_TO_LOG_SCRIPT}/log_prebuild.sh" "${PATH_TO_PREBUILD_SCRIPT_TO_EXECUTE}/scriptToExecute.sh" 2> "${SOURCE_ROOT}/build/prebuild_error.log"

Затем вам необходимо настроить сценарий перед этапом компиляции на целевых этапах сборки, который проверяет наличие этих файлов, сбрасывает их в журналы и прерывает сборку в случае сбоя.Или вы можете снова использовать мой

Затем построить и скрестить пальцы:)

...