xcodebuild生成空的compile_commands.json

问题描述 投票:4回答:4

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

第1步: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]

iphone xcode5 code-analysis xctool oclint
4个回答
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

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对项目运行此操作。


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


0
投票
  1. 首先尝试清理构建,然后再次构建
  2. 确保文件名或路径中没有空格
© www.soinside.com 2019 - 2024. All rights reserved.