xcbeautify

xcbeautify
is a little beautifier tool for xcodebuild
.
Similar to xcpretty
, but faster.
Features
Fun fact
xcbeautify
uses itself to format its CI build logs.
Installation
If you use macOS 10.14.3 or earlier, install Swift 5 Runtime Support for
Command Line Tools first:
brew cask install thii/swift-runtime/swift-runtime
Homebrew
brew install xcbeautify
mint install tuist/xcbeautify
CocoaPods
pod 'xcbeautify'
The xcbeautify
binary will be installed at Pods/xcbeautify/xcbeautify
Swift Package Manager
Create a directory in the same location as the xcodeproj
file, for example BuildTools
.
In that directory, create a Package.swift
file with the following contents.
In addition, add an empty file named Empty.swift
to the same location.
// swift-tools-version: 5.6
import PackageDescription
let package = Package(
name: "BuildTools",
platforms: [.macOS(.v10_11)],
dependencies: [
.package(url: "https://github.com/tuist/xcbeautify", from: "0.13.0"),
],
targets: [
.target(name: "BuildTools", path: "")
]
)
Enter this command to execute.
swift run -c release --package-path ./BuildTools xcbeautify
Build from source
git clone https://github.com/tuist/xcbeautify.git
cd xcbeautify
make install
Usage
xcodebuild [flags] | xcbeautify
If you want xcbeautify
to exit with the same status code as xcodebuild
(e.g. on a CI):
set -o pipefail && xcodebuild [flags] | xcbeautify
For parallel and concurrent destination testing, it helps to use unbuffered I/O for stdout and to redirect stderr to stdout.
NSUnbufferedIO=YES xcodebuild [flags] 2>&1 | xcbeautify
swift test [flags] 2>&1 | xcbeautify
Parse Bazel’s building and testing output:
set -o pipefail && bazel build //path/to/package:target 2>&1 | xcbeautify
set -o pipefail && bazel test //path/to/package:target 2>&1 | xcbeautify
Future work
Development
Generate Xcode project:
make xcode
Build with Bazel:
bazel build //Sources/xcbeautify
Release a new version, e.g. x.y.z
:
make release version=x.y.z
Contributing
Please send a PR!
License
MIT
xcbeautify
xcbeautify
is a little beautifier tool forxcodebuild
.Similar to
xcpretty
, but faster.Features
xcpretty
.xcbeautify
compiles to a static binary which you can bring anywhere. This also means less Ruby-dependant in your development environment and CI.Fun fact
xcbeautify
uses itself to format its CI build logs.Installation
If you use macOS 10.14.3 or earlier, install Swift 5 Runtime Support for Command Line Tools first:
Homebrew
Mint
CocoaPods
The
xcbeautify
binary will be installed atPods/xcbeautify/xcbeautify
Swift Package Manager
Create a directory in the same location as the
xcodeproj
file, for exampleBuildTools
.In that directory, create a
Package.swift
file with the following contents.In addition, add an empty file named
Empty.swift
to the same location.Enter this command to execute.
Build from source
Usage
If you want
xcbeautify
to exit with the same status code asxcodebuild
(e.g. on a CI):For parallel and concurrent destination testing, it helps to use unbuffered I/O for stdout and to redirect stderr to stdout.
Parse Bazel’s building and testing output:
Future work
Development
Generate Xcode project:
Build with Bazel:
Release a new version, e.g.
x.y.z
:Contributing
Please send a PR!
License
MIT