如何从shell脚本停止Xcode生成

如何从shell脚本停止Xcode生成,xcode,bash,shell,Xcode,Bash,Shell,我目前正在Xcode中开发一个应用程序,其中添加了一个运行shell脚本的构建阶段 脚本从桌面查找资源并将其复制到应用程序。如果文件/文件夹不存在,脚本应取消应用程序的生成 我尝试过各种方法来停止构建,比如xcodebuild clean,但我还是不太明白。以下是我所拥有的: if [ -d ~/Desktop/MyFolder ]; then cp -r ~/Desktop/MyFolder ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOUR

我目前正在Xcode中开发一个应用程序,其中添加了一个运行shell脚本的构建阶段

脚本从桌面查找资源并将其复制到应用程序。如果文件/文件夹不存在,脚本应取消应用程序的生成

我尝试过各种方法来停止构建,比如
xcodebuild clean
,但我还是不太明白。以下是我所拥有的:

if [ -d ~/Desktop/MyFolder ]; then
    cp -r ~/Desktop/MyFolder ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MyFolder
else
    #Stop the build
fi

有没有办法让脚本告诉Xcode停止构建?如果是,我怎么做

您需要从脚本返回非零退出代码:

exit 1

另一个有用的技术是脚本生成带有“error:”前缀的输出。 这将导致Xcode在构建日志中显示错误,如果Xcode设置在出现故障时停止构建,它将立即停止

除此之外,您还可以通过打印“warning:”前缀来触发警告

例如:

if [ -d ~/Desktop/MyFolder ]; then
    cp -r ~/Desktop/MyFolder ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MyFolder
else
    echo "error: Copy failed!"
fi

与退出1相比,它的优点是在构建时错误窗格中显示实际错误。这非常好,除非在存档时,它不会取消任务。您需要同时使用
exit 1
中止存档。对于普通建筑来说,这很好。