oclint的使用

下载并安装

1、首先安装CMakeNinja这两个编译工具

$ brew install cmake ninja

2、clone OCLint项目

$ git clone https://github.com/oclint/oclint

3、进入oclint-scripts目录,执行make命令

$ ./make

成功之后会出现build文件夹,里面有个oclint-release就是编译成功的oclint工具。

设置oclint工具的环境变量

设置环境变量的目的是为了我们能够快捷访问。然后我们需要配置PATH环境变量,注意OCLint_PATH的路径为你存放oclint-release的路径。将其添加到.zshrc,或者.bash_profile文件末尾:

OCLint_PATH=/Users/你的本地用户路径/oclint/build/oclint-release
export PATH=$OCLint_PATH/bin:$PATH

执行source .zshrc,刷新环境变量,然后验证oclint是否安装成功:

$ oclint --version
OCLint (http://oclint.org/):
OCLint version 0.15.
Built May 19 2020 (11:48:49).

出现这个介绍就说明我们已经完成了安装。

1.进入项目更目录

cd /Users/admin/Desktop/OClintTest 

查看项目基本信息

xcodebuild -list

输出为

Information about project "OClintTest":
    Targets:
        OClintTest

    Build Configurations:
        Debug
        Release

    If no build configuration is specified and -scheme is not passed then "Release" is used.

    Schemes:
        OClintTest

这里显示了对应项目的Schemes

2.编译项目

先clean指定项目OClint,因为集成了pod,所以使用OClint.xcworkspace;然后再Debug 编译项目了;最后通过xcpretty,使用 -r json-compilation-database 可以生成指定格式的数据。编译成功后,会在项目的文件夹下出现 compile_commands.json 文件

xcodebuild -scheme OClintTest -workspace OClintTest.xcworkspace clean && xcodebuild -scheme OClintTest -workspace OClintTest.xcworkspace -configuration Debug | xcpretty -r json-compilation-database -o compile_commands.json

每次编译之前需要 clean 这时候就会生成根目录下就会生成compile_commands.json文件,我们需要把compile_commands.json生成html报表。使用 oclint-json-compilation-database 命令对上一步生成的json数据进行分析,对项目代码进行分析,最终生成report.html文件。OCLint目前支持输出html,json,xml,pmd,Xcode格式文件。

oclint-json-compilation-database -e Pods -- -report-type html -o oclintReport.html

如果项目工程太大,整个 lint 会比较耗时,所幸 oclint 支持针对某个代码文件夹进行 lint

oclint-json-compilation-database -i 需要静态分析的文件夹或文件 -- -report-type html -o oclintReport.html  其他的参数

有时候错误信息比较多利用下面的脚本则可以将报错信息写入 log 文件,方便查看

oclint-json-compilation-database -e Pods -- -report-type html -o oclintReport.html 2>&1 | tee 1.log

此时会在根目录下生成oclintReport.html文件
参考连接:

如何对iOS项目进行静态分析

OCLint基本使用(一)

注:报错oclint: error: compilation contains multiple jobs:

修改project和target中COMPILER_INDEX_STORE_ENABLE为NO
参考连接:oclint遇到错误及解决办法

你可能感兴趣的:(oclint的使用)