如果运行脚本阶段发生错误,如何中止构建

Gor*_*tch 14 xcode build-process

我想使用运行脚本目标在mercurial中标记我的修订版并将其上传到服务器.我创建了一个新的运行脚本目标,它取决于构建我的应用程序的其他目标,然后我一个接一个地直接添加了两个运行脚本阶段.

现在我的问题是:如果运行脚本阶段#1给出错误(脚本的返回代码是不等于0),我怎么能阻止执行运行脚本阶段#2?

第二个脚本会将文件上传到服务器,所以我只想执行这个阶段,如果一切顺利的话.

w-m*_*w-m 11

解决方案是在发生错误时通常停止构建:

XCode - >首选项 - >构建 - >构建选项"错误后继续构建".

如果取消选中该选项,则如果脚本返回不等于0的内容并且不执行第二个脚本,则构建将停止.如果使用xcodebuild,则该设置的名称为"PBXBuildsContinueAfterErrors".


Far*_*our 11

您的第一个脚本可以使用"exit 1"中止构建,如下所示:

if [ error ] then
    echo "There are some errors, etc..."
    exit 1
fi
Run Code Online (Sandbox Code Playgroud)


Dec*_*nna 6

exit 1中止构建。
echo "error: 会在 Xcode 中将其标记为错误。

echo "error: Everything has failed!"
exit 1
Run Code Online (Sandbox Code Playgroud)

自定义错误示例