More than 1 year has passed since last update.

OCLintとは

Objective-Cの静的解析ツール。
JavaのCheckStyleみたく、コードの問題点を教えてくれる。
本稿ではXCodeから使用できるようにする。

OClint公式サイト

インストール&設定

xctoolのインストール

※ Homebrewインストール済みとします。

$ brew install xctool

OCLintのインストール

  1. ダウンロード
    http://oclint.org/downloads.html

  2. 配置
    oclint-0.8.1フォルダを/usr/local などに移動する(例./usr/local/oclint-0.8.1/)。

XCodeの設定

  1. 対象のProjectを選択する。
  2. 左下の「+」をクリックする。 1-2.png
  3. iOS - Other - Aggregateを選択して、Nextをクリックする。 3.png
  4. Projectが対象のプロジェクトになっていることを確認し、Product NameにOCLintと入力し、Finishをクリックする。 4.png
  5. TARGETSからOCLintを選択する。
  6. Build Phasesを選択する。 5-6.png
  7. 左上の「+」をクリックし、「New Run Script Phase」を選択する。 7.png
  8. Run Scriptに以下を記述する(変数を適切に設定する)。
    • PROJECT … プロジェクトファイル名
    • SCHEME … ターゲットスキーム(大抵はプロジェクト名と同じかと)
    • XCTOOL … xctoolが格納されている場所。Homebrewでインストールしていれば/usr/local/bin
    • OCLINT_HOME … oclintのインストール場所。
PROJECT=ProjectName
SCHEME=${PROJECT}

XCTOOL=/usr/local/bin
export PATH=$XCTOOL:$PATH
OCLINT_HOME=/usr/local/oclint-0.8.1
export PATH=$OCLINT_HOME/bin:$PATH

xctool -project ${SRCROOT}/${PROJECT}.xcodeproj -scheme ${SCHEME} -reporter json-compilation-database:compile_commands.json clean
xctool -project ${SRCROOT}/${PROJECT}.xcodeproj -scheme ${SCHEME} -reporter json-compilation-database:compile_commands.json build

oclint-json-compilation-database | sed 's/\(.*\.\m\{1,2\}:[0-9]*:[0-9]*:\)/\1 warning:/'

実行

  1. 左上からOCLintターゲットを選択し、Buildする(時間かかる)。 lint.png

治したいところ

ソースフォルダにcompile_commands.jsonが生成されてしまう。
消せばいいんだけど、$(TARGET_TEMP_DIR)でできないか。