Xcodebuildをbashから直接使用すると、どのようにして障害が検出されますか?それにかかわらず終了コードは常に0です。 「FAILED」または「SUCCEEDED」のテクスチャの出力があることが分かりますが、よりエレガントな方法はありませんか?OSX/Bash - ビルドの失敗を検出する
また、私は時々 "make"(特に私のQtベースのビルドで)を使用します。ビルドスクリプトからmakeが失敗したことを検出する方法はありますか?
Xcodebuildをbashから直接使用すると、どのようにして障害が検出されますか?それにかかわらず終了コードは常に0です。 「FAILED」または「SUCCEEDED」のテクスチャの出力があることが分かりますが、よりエレガントな方法はありませんか?OSX/Bash - ビルドの失敗を検出する
また、私は時々 "make"(特に私のQtベースのビルドで)を使用します。ビルドスクリプトからmakeが失敗したことを検出する方法はありますか?
おそらく、Xcodeのバージョン、またはおそらくどのように失敗するかによって異なります。これは私が$をチェックしたときに得られるものです。インクルードファイルが見つからない場合:
[email protected]:~/Source/icanvas/iCanvas-project (release/icanvas-1.9 %) $ xcodebuild
...
/Users/davidb/Source/icanvas/iCanvas-project/iCanvas-target/iPhone/ConversationViewController.m:21:9: fatal error: 'CanvasKit/CKActionSheetWithBlocks.h' file not found
#import "CanvasKit/CKActionSheetWithBlocks.h"
^
1 error generated.
...
** BUILD FAILED **
...
(5 failures)
[email protected]:~/Source/icanvas/iCanvas-project (release/icanvas-1.9 %) $ echo $?
65
xcodebuildはビルドに失敗しても常に0を返します。エラーを検出するために、あなたはこのようなスクリプトを使用することができます。
build_errors_file=build_errors.log
# Pipe errors to file
xcodebuild 2>$build_errors_file
errors=`grep -wc "The following build commands failed" $build_errors_file`
if [ "$errors" != "0" ]
then
echo "BUILD FAILED. Error Log:"
cat $build_errors_file
rm $build_errors_file
exit 1
fi
rm $build_errors_file
# ... continue
私は、アーカイブオプションを使用してxcodebuildを実行しているとき**印刷されません。**ビルドが失敗したことを確認し、それを探すために文字列があると思われます'次のビルドコマンドは失敗しました'。
ありがとうございます。私はまた、文字列 "エラー"だけで単語の数を試し、それは十分であるようです。 (あなたのクラスや何かに "error"という言葉がない限り) – kevinl
終了コードは、私はあなたがシェルスクリプトからxcodebuildを実行していたと仮定常に0
ではありません。
##!/ bin/bash -eをスクリプトファイルより先に入力してみてください。
は、あなたがhttp://stackoverflow.com/questions/7363459/how-to-get-the-return-value-of-xcodebuild/10808467#10808467を見たことがありますか? –
so xcodebuild .... || exit 1は、失敗時にexit code 1でスクリプトを終了しますか?失敗したときにxcodebuildが実際に終了コード> 0を出すことに依存していませんか?私はそれがそれをしないと思った。このために – JasonGenX