2010-10-06 51 views
8

我想使用运行脚本目标在mercurial中标记我的修订并将其上载到服务器。我创建了一个新的运行脚本目标,这个目标取决于构建我的应用程序的其他目标,然后直接一个接一个地添加两个运行脚本阶段。如何在运行脚本阶段给出错误时中止构建

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

第二个脚本将文件上传到服务器,所以我只想执行这个阶段,如果一切正常,那么直到那时。

回答

11

一个解决方案是一般停建时出现错误:

的XCode - >首选项 - >建筑 - >构建选项“继续错误后建设”。

如果取消选中,如果脚本返回不等于0的内容并且第二个脚本不会执行,则构建将停止。如果您使用xcodebuild,则设置的名称是“PBXBuildsContinueAfterErrors”。

+0

有趣!这是否也可以为特定目标设定? – GorillaPatch 2010-10-06 11:23:53

+0

你的意思是通过xcodebuild?如果通过一次调用构建多个目标,只需将它们拆分为使用不同的xcodebuild命令,每个命令都具有不同的-target ...和-PBXBuildsContinueAfterErrors = 0/1 – 2010-10-06 12:23:58

+1

我更多地了解从Xcode启动的构建。 – GorillaPatch 2010-10-06 14:53:52

4

你的第一个脚本可以用 “1号出口” 中止编译,就像这样:

if [ error ] then 
    echo "There are some errors, etc..." 
    exit 1 
fi 
相关问题