コンソールから実行xcodebuildすると非常に詳細な出力が表示されますが、警告とエラーのみを表示するために出力を制限するオプションを見つけることができませんでした。
xcodebuild出力をキャプチャしてフィルタリングする方法を探しています。パイプで動作するPythonソリューションを好むでしょうが、コマンドラインベースのソリューションである限り、他のアプローチを受け入れます。
すでにこれを行うことができるツールはありますか?
コンソールから実行xcodebuildすると非常に詳細な出力が表示されますが、警告とエラーのみを表示するために出力を制限するオプションを見つけることができませんでした。
xcodebuild出力をキャプチャしてフィルタリングする方法を探しています。パイプで動作するPythonソリューションを好むでしょうが、コマンドラインベースのソリューションである限り、他のアプローチを受け入れます。
すでにこれを行うことができるツールはありますか?
と呼ばれる Ruby gem がありxcprettyます。
出力をフィルタリングし、xcodebuildさまざまなフォーマッターとカラーリングも提供します。
UPDATE : Mike Hardy がこの回答へのコメントで正しく述べているように、xcpretty維持されなくなりました。
これは私には十分ではありません。/ dev / nullにパイプすると、ビルドが失敗したことが示されますが、理由はわかりません。理想的には、すべての成功したコンパイラコマンドがなくても、エラーや警告だけを見ることができます。
これは基本的に仕事をします:
xcodebuild | grep -A 5 error:
エラー出力メッセージのみを表示するには、次のように標準出力を/ dev / null(ブラックホールとして機能する特別なファイル)にリダイレクトします。
xcodebuild> / dev / null
エラー出力をファイルにキャプチャする場合は、次の操作を実行できます。
xcodebuild 2> ./build_errors.log
xcodebuild 出力をフォーマットすることもできるSwift コマンドライン ツールhttps://github.com/thii/xcbeautifyがあります。
私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.
警告を削除したい場合は、
xcodebuild <command> | sed -e '/warning:/,/\^/d'
使用中に警告を抑制したい場合は、xcprettyこれを試してください
xcodebuild <command> \
| sed -e '/warning:/,/\^/d' \
| xcpretty -s