xcodebuild生成空的compile_commands.json

时间:2014-08-22 09:54:02

标签: iphone xcode5 code-analysis xctool oclint

我正在使用以下命令将oclint与xcode 5-

一起使用

Step1:xcodebuild -target OClintDemo -configuration Debug -scheme OClintDemo -sdk iphonesimulator
Step2:OClintDemo jenkins $ xcodebuild -sdk iphonesimulator | tee xcodebuild.log
Step3:oclint-xcodebuild xcodebuild.log
Step4:oclint-json-compilation-database -o = report.html

但是我收到compile_commands.json空文件,而report.html包含以下内容 - OCLint报告摘要:TotalFiles = 0 FilesWithViolations = 0 P1 = 0 P2 = 0 P3 = 0 [OCLint(http://oclint.org)v0.7]

4 个答案:

答案 0 :(得分:4)

Xcode 8不支持xctool,您可以使用xcpretty。你的xcodebuild命令应该是这样的

如果您使用的是工作区

xcodebuild -workspace WORKSPACE_NAME.xcworkspace -scheme SELECTED_SCHEME | xcpretty -r json-compilation-database --output compile_commands.json

对于单个项目

xcodebuild -project PROJECT_NAME.xcodeproj | xcpretty -r json-compilation-database --output compile_commands.json

答案 1 :(得分:3)

以下是我如何获得正确的compile_commands.json文件( Xcode 8.3

清理你的构建

xcodebuild clean -workspace WORKSPACE.xcworkspace/ -scheme "SCHEME"

这可以确保xcodebuild重新编译所有文件,然后使它们出现在编译数据库中。

构建并生成 compile_commands.json

xcodebuild -workspace WORKSPACE.xcworkspace/ -scheme "SCHEME" | xcpretty -r json-compilation-database -o compile_commands.json

显然,您应该将工作区和方案替换为项目值。您还可以使用-project代替-workspace来对项目运行此功能。

答案 2 :(得分:1)

你试试这个剧本

#xctool oclint
xctool  -workspace iWeidao.xcworkspace \
        -scheme iWeidao \
        -reporter json-compilation-database:compile_commands.json clean build

oclint-json-compilation-database -v oclint_args "-report-type html -o report.html -rc=LONG_LINE=120"
open compile_commands.json
open report.html

这里 https://github.com/facebook/xctool/issues/270

答案 3 :(得分:0)

  1. 首先尝试清理构建,然后重新构建
  2. 确保文件名或路径中没有空格