Facebook Infer安装总结

最近想对iOS项目的代码进行静态分析,最后在几个成熟的工具中选择了Facebook的Infer工具。

然后对照github上的说明安装:https://github.com/facebook/infer/blob/master/INSTALL.md

中间踩了一些坑,记录下来方便后面自己再遇到时查阅。


1.
安装brew: 
curl -LsSf http://github.com/mxcl/homebrew/tarball/master | sudo tar xvz -C/usr/local --strip 1


sudo brew update


2.
安装wget: 

brew install wget (不一定需要,顺便安装下)


3.

使用brew安装一些工具:
brew install autoconf automake cmake opam pkg-config
brew install caskroom/cask/brew-cask
brew cask install java




4.

opam工具更新和配置:


opam update


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


1. To configure OPAM in the current shell session, you need to run:


      eval `opam config env`


2. To correctly configure OPAM for subsequent use, add the following
   line to your profile file (for instance ~/.bash_profile):


      . /Users/Ben/.opam/opam-init/init.sh > /dev/null 2> /dev/null || true


3. To avoid issues related to non-system installations of `ocamlfind`
   add the following lines to ~/.ocamlinit (create it if necessary):


      let () =
        try Topdirs.dir_directory (Sys.getenv "OCAML_TOPLEVEL_PATH")
        with Not_found -> ()
      ;;


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


5.

安装xcpretty工具:
sudo gem install xcpretty -n/usr/local/bin


6.

从源码安装编译Infer工具:(安装过程中根据需要修改目录下面的opam配置文件中相关工具版本号)
git clone https://github.com/facebook/infer.git
cd infer
./build-infer.sh clang
export PATH=`pwd`/infer/bin:$PATH


echo "export PATH=\"\$PATH:`pwd`/infer/bin\"" \ >> ~/.bash_profile 
source ~/.bash_profile


7.

进入需要检查的项目目录下,使用命令进行静态分析,最终会在项目目录中生成infer-out文件夹,里面会有report.json、report.csv、bugs.txt三种格式的结果文件:


xcodebuild -workspace ./xxxx.xcworkspace -scheme xxxx -configuration Debug -sdk iphonesimulator clean 
infer -- xcodebuild -workspace ./xxxx.xcworkspace -scheme xxxx -configuration Debug -sdk iphonesimulator

增量分析的话接着上面执行:

infer --incremental -- xcodebuild -workspace ./xxxx.xcworkspace -scheme xxxx -configuration Debug -sdk iphonesimulator  (--incremental可以写成--i)


你可能感兴趣的:(iOSX,Dev,调试技巧,综合知识,APP优化)