Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time
September 27, 2016 22:47
August 16, 2018 09:32
October 10, 2016 23:00
October 6, 2015 12:31
October 6, 2015 12:31
October 10, 2016 23:51
August 16, 2018 09:32
October 23, 2016 22:14
April 25, 2017 11:21


xcpretty is a fast and flexible formatter for xcodebuild.
It does one thing, and it should do it well.

Gem version Build Status Code Climate Reviewed by Hound


$ gem install xcpretty


$ 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.

$ set -o pipefail && xcodebuild [flags] | xcpretty
# OR
$ xcodebuild [flags] | xcpretty && exit ${PIPESTATUS[0]}

Raw xcodebuild output

You might want to use xcpretty 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:

$ xcodebuild [flags] | tee xcodebuild.log | xcpretty



  • --[no-]color: Show build icons in color. (you can add it to --simple or --test format). Defaults to auto-detecting color availability.
  • --[no-]utf: Use unicode characters in build output or only ASCII. Defaults to auto-detecting the current locale.


  • --report junit, -r junit: Creates a JUnit-style XML report at build/reports/junit.xml, compatible with Jenkins and TeamCity CI.

  • --report html, -r html: Creates a simple HTML report at build/reports/tests.html. xcpretty html

  • --report json-compilation-database, -r json-compilation-database: Creates a JSON compilation database at build/reports/compilation_db.json. This is a format to replay single compilations independently of the build system.

Writing a report to a custom path can be specified using --output PATH.


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

The recommended format is a gem containing the formatter and named with an xcpretty- prefix, for easier discovery.