アプリ開発効率化の鍵は「テストの自動化」日経電子版 × Sansan × 岸川克己氏 | CAREER HACK という記事の中で、Objective-C で使える静的解析ツールが紹介されていたので、使ってみることにしました。

インストール

公式ページの手順どおりインストールしました。

https://github.com/facebook/infer/blob/master/INSTALL.md

OPAM をインストール

Homebrew から OPAM をインストールします。

$ brew install opam

OCaml 関連のインストールのようです。よくわかりません。

この処理は結構時間がかかります。

$ opam init --comp=4.01.0  # (answer 'y' to the question)
$ eval `opam config env`
$ opam install extlib.1.5.4 atdgen.1.6.0 javalib.2.3.1 sawja.1.5.1

最後にコンパイル。Go have a coffee というメッセージが出ますので、文字どおりそこそこ時間がかかります。

$ cd infer
$ ./update-fcp.sh && ../facebook-clang-plugin/clang/setup.sh && ./compile-fcp.sh # go have a coffee :)
$ make -C infer
$ export PATH=`pwd`/infer/bin:$PATH

Homebrew からインストール

私は上の手順でインストールしたのですが、Homebrew からもできるようです。面倒な手間がはぶけそうですね。

ちなみに、Homebrew Cask を事前にインストールしておく必要があります。

iOS のプロジェクトを解析する

Infer を使って解析をするには、xcodebuild を使ってビルドするコマンドラインの先頭に infer を付けるだけです。簡単。

こんな感じですね。

$ infer -- xcodebuild -project Hoge.xcodeproj -target ....

実際に iOS のプロジェクトを解析してみたのですが、見落としていたメモリリークを見つけてくれました。

リリース前にサクッとやってみてもいいのではないでしょうか。