Подтвердить что ты не робот

Как отфильтровать вывод командной строки xcodebuild?

Запуск xcodebuild с консоли приведет к очень подробному выводу, и я не смог найти какие-либо опции для ограничения его вывода, чтобы отображать только предупреждения и ошибки.

Я ищу способ захватить вывод xcodebuild и отфильтровать его. Он предпочел бы, чтобы решение Python работало с каналами, но я открыт для других подходов, поскольку они являются решениями на основе командной строки.

Есть ли какие-либо инструменты, которые уже могут это сделать?

4b9b3361

Ответ 1

Чтобы видеть только сообщения об ошибках, переадресуйте стандартный вывод в /dev/null (специальный файл, который работает как черная дыра) следующим образом:

xcodebuild > /dev/null

Если вы хотите записать вывод ошибки в файл, вы можете сделать:

xcodebuild 2> ./build_errors.log

Ответ 2

Используйте xcodebuild -quiet.

В соответствии с man-страницей xcodebuild:

-quiet: не печатайте какой-либо вывод, кроме предупреждений и ошибок.

Бонус: Никаких других инструментов не требуется! (Хотя мне также нравится xcodebuild | xcpretty)

Я строю с Travis CI, который жалуется после 4 МБ журналов. Этот аргумент решил проблему.

Ответ 3

Theres Ruby gem называется xcpretty.

Он фильтрует вывод xcodebuild, а также предоставляет различные форматы и раскраски.

Ответ 4

Этого недостаточно для меня. Piping to/dev/null просто покажет вам, что сборка завершилась неудачно, но вы не видите причину (причины) почему. В идеале мы могли видеть только ошибки и/или предупреждения без всех успешных команд компилятора.

В основном это выполняет задание:

xcodebuild | grep -A 5 error:

Ответ 5

enter image description here

-quiet - лучший способ сделать это сейчас.

Ответ 6

Я люблю xcpretty для просмотра как человека, но мне нужно было найти ошибки сборки в автоматическом режиме для распространения в другом месте, и я хотел быть уверенным, что я захватил только соответствующую информацию. Для этого используется следующая команда sed:

xcodebuild | sed -nE '/error:/,/^[[:digit:]] errors? generated/ p'

Вывод:

main.c:16:5: error: use of undeclared identifier 'x'
    x = 5;
    ^
main.c:17:5: error: use of undeclared identifier 'y'
    y = 3;
    ^
2 errors generated.

Ответ 7

Существует инструмент командной строки Swift https://github.com/thii/xcbeautify, который также может форматировать вывод xcodebuild.