我在持续集成服务器上的bash脚本中使用xcodebuild。
我想知道脚本中的构建何时失败,因此我可以提前退出并将构建标记为失败。
xcodebuild向控制台显示BUILD FAILED消息,但我没有成功获取返回值。
我怎样才能做到这一点?
提前致谢
答案 0 :(得分:11)
我使用这个命令解决了我的问题:xcodebuild -... ||退出1
答案 1 :(得分:11)
xcodebuild
始终返回0。您应该检查输出中的** BUILD FAILED **
或** BUILD SUCCEEDED **
,以了解测试是否通过。
答案 2 :(得分:10)
你可以使用“$?”变量来获取上一个命令的返回码。
xcodebuild -...
if [[ $? == 0 ]]; then
echo "Success"
else
echo "Failed"
fi
答案 3 :(得分:6)
Xcodebuild可以返回here列出的任何错误代码,但不限于EX_OK(或int 0)。
但是,我从德米特里提供的解决方案中学习并修改如下。它适用于我,我希望它可能会有所帮助。
xcodebuild -project ......
if test $? -eq 0
then
echo "Success"
else
echo "Failed"
fi
答案 4 :(得分:2)
也许不是因为xcodebuild在构建失败时没有返回非零值。无论返回错误行如何,您的shell脚本都会继续运行,这可能是因为您没有使用“-e”选项运行脚本。
尝试在脚本文件之前加上#!/ bin / bash -e 。
答案 5 :(得分:0)
通常,您始终可以通过以下方法检查Unix bash中上次运行进程的存在值:
$ echo $?
其中$?
是最后执行的命令的现存值的内置占位符。有关其他bash内置变量的更多详细信息,请参见here。
因此,首先运行您要检查其返回代码的命令,然后按上述方式运行echo。
答案 6 :(得分:-1)
编译产品(.a或.ipa文件)是否存在