OCLint

Using OCLint with xctool

This document goes through the happy path of using OCLint to analyze the code quality of a Xcode project with xctool.

Background

xctool is a drop-in replacement for Apple’s xcodebuild. It makes building Xcode projects much easier. It eases continuous integration in many ways as well. xctool supports generating the report in JSON Compilation Database format, which can be used by OCLint to understand all the compiler flags in order to analyze the code.

Running xctool with json-compilation-database Reporter

Running xctool is quite straight forward. For example, the command below will build the project and generate the compile_commands.json file under the current folder.

path/to/xctool.sh \
  -project YourProject.xcodeproj \
  -scheme YourScheme \
  -reporter json-compilation-database:compile_commands.json \
  build

xctool also supports an .xctool-args file to preserve the command arguments, like workspace, scheme, configuration, etc. If we have .xctool-args ready, then we could simply run

xctool -reporter json-compilation-database:compile_commands.json build

to get the compile_commands.json file.

We can use xctool clean to clean the build in order to have a full list of all compiling files the next time we call xctool build.

Running oclint-json-compilation-database

Now, by having the compile_commands.json file, we can run the code analysis by simply call

oclint-json-compilation-database

Or with your customizations.

See also

With the great help from xctool, you could even show OCLint warnings in Xcode.