Pregunta

Running xcodebuild desde la consola le traerá de salida muy prolijo y yo no era capaz de localizar cualquier opción de límite de su producción con el fin de mostrar sólo los avisos y errores.

Estoy buscando una manera de capturar la salida xcodebuild y filtrarlo. Se prefiere una solución de Python que trabajará con los tubos, pero estoy abierto a otros enfoques siempre son soluciones basadas en la línea de comandos.

¿Hay herramientas que ya son capaces de hacer esto?

¿Fue útil?

Solución

Para ver solo los mensajes de salida de error, redirigir la salida estándar a / dev / null (un archivo especial que funciona como un agujero negro) como esto:

xcodebuild > /dev/null

Si desea capturar la salida de error en un archivo, que puede hacer:

xcodebuild 2> ./build_errors.log

Otros consejos

Uso xcodebuild -quiet.

De acuerdo con la página del manual xcodebuild:

  

-quiet:. No imprima cualquier salida a excepción de avisos y errores

Bono: No hay otras herramientas necesarias! (Aunque también me gusta xcodebuild | xcpretty)

construyo con Travis CI, que se queja después de 4 MB de registros. Este argumento resuelve el problema.

Hay una joya llamada Rubí xcpretty .

Se filtra la salida de xcodebuild y también proporciona diferentes formateadores y colorantes.

Esto no es suficiente para mí. Tuberías a / dev / null sólo te mostrará que una compilación falló, pero no ver la razón (s) por qué. Lo ideal sería que pudiéramos ver sólo los errores y / o advertencias sin todos los comandos del compilador de éxito.

Esto básicamente hace el trabajo:

xcodebuild | grep -A 5 error:

 introducir descripción de la imagen aquí

-quiet es la mejor manera de hacerlo en este momento.

Hay una herramienta de línea de comandos Swift https://github.com/thii/xcbeautify que puede también xcodebuild formato a la salida.

Me encanta xcpretty para mirar como un ser humano, pero que tenía una necesidad de encontrar errores de compilación en un entorno automatizado para la propagación en otros lugares, y quería estar seguro de que capturé sólo la información relevante. El siguiente comando sed sirve a ese propósito:

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

Salida:

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.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top