我有一个项目on GitHub,其中包含自动构建on Travis CI。我的代码(buildfix
分支,提交3ebc41a8b4738bce926b39cc3869c6dce8bed9bc
)的当前版本正在成功,即使我有一个静态分析器问题。这是xcodebuild
命令:
xcodebuild -workspace UnrarKit.xcworkspace -scheme UnrarKit -sdk macosx -configuration Release analyze test
我还将整个项目的“将警告视为错误”设置为YES(对于发布版本)。我从xcodebuild
得到了这个输出:
The following commands produced analyzer issues: Analyze Classes/URKArchive.mm (1 command with analyzer issues)
我在本地终端用xcodebuild
复制了相同的结果。
为什么xcodebuild
仍然返回0
并允许我的构建成功?如果不能使用结果,为什么允许xcodebuild
首先进行分析?如果这是一个错误,我会将它归档给Apple,但是目前我对这种可能性做错了。
答案 0 :(得分:4)
我认为这是预期的行为返回0.毕竟最后的日志是** ANALYZE SUCCEEDED **。 您可以使用
获取HTML报告xcodebuild -workspace UnrarKit.xcworkspace -scheme UnrarKit -sdk macosx -configuration Release analyze test CLANG_ANALYZER_OUTPUT=html CLANG_ANALYZER_OUTPUT_DIR=analyzer
find analyzer -name *.html
我也试图找到一种方法让它返回0以外的东西,我唯一想到的是:
xcodebuild analyze ... && [[ -z `find analyzer -name "*.html"` ]]
答案 1 :(得分:2)
对于Gitlab CI / CD,我使用以下bash语句进行了类似的功能:
echo "failOnWarnings" | exit `find analyzer -name "*.html" -print -quit | wc -l`
如果 analyzer 文件夹中有任何html文件,则退出代码将为1(表示失败),否则退出代码将为0(表示成功)。
它已在GitLab MacOS运行程序11.11.3(darwin / amd64)上进行了测试,并且可以运行。 \ o /