コンソールからxcodebuild
を実行すると、非常に詳細な出力が表示されます。警告とエラーのみを表示するために、出力を制限するオプションを見つけることができませんでした。
xcodebuild
の出力をキャプチャしてフィルタリングする方法を探しています。パイプで動作するPythonソリューションが望ましいですが、コマンドラインベースのソリューションである限り、他のアプローチを受け入れることができます。
すでにこれを実行できるツールはありますか?
エラー出力メッセージのみを表示するには、次のように標準出力を/ dev/null(ブラックホールとして機能する特別なファイル)にリダイレクトします。
xcodebuild>/dev/null
エラー出力をファイルにキャプチャする場合は、次のようにできます。
xcodebuild 2> ./build_errors.log
xcodebuild -quiet
を使用します。
Xcodebuildのmanページによると:
-quiet:警告とエラー以外の出力を印刷しません。
ボーナス:他のツールは必要ありません! (私はxcodebuild | xcpretty
も好きですが)
私はTravis CIを使用してビルドしますが、これは4 MBのログの後に不平を言います。この議論は問題を解決しました。
Rubyと呼ばれる宝石 xcpretty
があります。
xcodebuild
の出力をフィルター処理し、さまざまなフォーマッターとカラーリングも提供します。
これでは十分ではありません。/dev/nullにパイプすると、ビルドが失敗したことが表示されますが、理由はわかりません。理想的には、成功したコンパイラー・コマンドのすべてがなくても、エラーおよび/または警告のみを確認できるはずです。
これは基本的に仕事をします:
xcodebuild | grep -A 5 error:
Swiftコマンドラインツール https://github.com/thii/xcbeautify があり、xcodebuild出力もフォーマットできます。
人間として見ることは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.