Flexible and fast xcodebuild formatter
Last updated Jun 26, 2026
4.0k
Stars
284
Forks
120
Issues
0
Stars/day
Attention Score
77
Language breakdown
No language data available.
โธ Files
click to expand
README

xcpretty is a fast and flexible formatter for xcodebuild.
It does one thing, and it should do it well.
Installation
bash
$ gem install xcpretty
Usage
bash
$ xcodebuild [flags] | xcpretty
xcpretty is designed to be piped with xcodebuild and thus keeping 100%
compatibility with it. It's even a bit faster than xcodebuild itself, since
it saves your terminal some prints.
Important: If you're running xcpretty on a CI like Travis or Jenkins, you may want to exit with same status code as xcodebuild. CI systems usually use status codes to determine if the build has failed.
bash
$ set -o pipefail && xcodebuild [flags] | xcpretty
#
OR
#
$ xcodebuild [flags] | xcpretty && exit ${PIPESTATUS[0]}
Raw xcodebuild output
You might want to usexcpretty together with tee to store the raw log in a
file, and get the pretty output in the terminal. This might be useful if you
want to inspect a failure in detail and aren't able to tell from the pretty
output.
Here's a way of doing it:
bash $ xcodebuild [flags] | tee xcodebuild.log | xcpretty
Formats
--simple,-s(default)
--test,-t(RSpec style)
--tap(Test Anything Protocol-compatible output)--knock,-k(a simplified version of the Test Anything Protocol)
ANSI / UTF-8
--[no-]color: Show build icons in color. (you can add it to--simpleor--testformat).
--[no-]utf: Use unicode characters in build output or only ASCII.
Reporters
--report junit,-r junit: Creates a JUnit-style XML report atbuild/reports/junit.xml, compatible with Jenkins and TeamCity CI.
--report html,-r html: Creates a simple HTML report atbuild/reports/tests.html.
--report json-compilation-database,-r json-compilation-database: Creates a JSON compilation database atbuild/reports/compilationdb.json. This is a format to replay single compilations independently of the build system.
--output PATH.
Extensions
xcpretty supports custom formatters through the use of the --formatter flag, which takes a path to a file as an argument. The file must contain a Ruby subclass of XCPretty::Formatter, and return that class at the end of the file. The class can override the format_* methods to hook into output parsing events.
Known extensions
- xcpretty-travis-formatter: support for cleaner output in TravisCI using code folding
xcpretty- prefix, for easier discovery.
Team
- Marin Usalj http://supermar.in
- Delisa Mason http://delisa.me
๐ More in this category