OCLintとは
Objective-Cの静的解析ツール。
JavaのCheckStyleみたく、コードの問題点を教えてくれる。
本稿ではXCodeから使用できるようにする。
インストール&設定
xctoolのインストール
※ Homebrewインストール済みとします。
$ brew install xctool
OCLintのインストール
-
配置
oclint-0.8.1フォルダを/usr/local などに移動する(例./usr/local/oclint-0.8.1/)。
XCodeの設定
- 対象のProjectを選択する。
- 左下の「+」をクリックする。
- iOS - Other - Aggregateを選択して、Nextをクリックする。
- Projectが対象のプロジェクトになっていることを確認し、Product NameにOCLintと入力し、Finishをクリックする。
- TARGETSからOCLintを選択する。
- Build Phasesを選択する。
- 左上の「+」をクリックし、「New Run Script Phase」を選択する。
- 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:/'
実行
治したいところ
ソースフォルダにcompile_commands.jsonが生成されてしまう。
消せばいいんだけど、$(TARGET_TEMP_DIR)でできないか。