Как я могу увидеть результат компилятора из пользовательских шагов сборки (предварительное действие или пост-действие)?
Как отображать выходные данные компилятора или пользовательские шаги сборки при создании с помощью xcode?
Ответ 1
Вывод предварительного действия по крайней мере появляется в system.log и отображается в Console.app.
Ответ 2
Вы найдете (и можете посмотреть во время сборки) полный вывод сборки в Log Navigator. Это самый правый значок маленьких значков чуть ниже кнопок "Выполнить" и "Создать".
Ответ 3
В моем ответе здесь (Нормально ли для Xcode не обнаруживать, что пре-действие не удалось?), это проблема, которая обсуждалась на форумах dev. Предшествующий/пост-действие script не нулевой статус, похоже, не влияет, и выход, похоже, не попадает в какие-либо журналы.
Ответ 4
РЕДАКТИРОВАТЬ:, как указано в комментарии ниже, этот ответ работает только для сценариев сценариев сборки, а не для сценариев действий и последействия.
В Xcode 8 вам нужно будет выбрать свою последнюю версию в "Навигаторе → Навигаторе отчетов". В основной области вы сможете увидеть полный журнал построения, включая ваш вывод.
Вот простое "Hello world" echo
Ответ 5
Итак, я понял способ для обоих:
- Показать выходные данные из сценариев предварительной сборки
- Остановить сборку script в случае ошибки сборки
Основная идея - отправить весь вывод из события сборки в различные файлы, а затем представить этот вывод как часть целевой сборки script (которая показывает ее вывод и может быть отменена или отменена).
Предупреждающие хаки находятся рядом
Настроить конструкцию script, которая автоматически выполняет перекачку вывода в 2 разных файла... 1 для обычных журналов и один для stderr. Или используйте мой (я опубликовал в своем блоге, потому что кажется, что обнаружение кода отскакивает по сценариям оболочки.)
Затем вы должны называть это script на фазе предварительной сборки схемы следующим образом:
"${PATH_TO_LOG_SCRIPT}/log_prebuild.sh" "${PATH_TO_PREBUILD_SCRIPT_TO_EXECUTE}/scriptToExecute.sh" 2> "${SOURCE_ROOT}/build/prebuild_error.log"
Затем вам нужно настроить script до этапа компиляции на фазах целевой сборки, который проверяет наличие этих файлов, выгружает их в журналы и прерывает сборку, если произошел сбой. Или вы можете снова использовать mine
Затем постройте и скрестите пальцы:)