OCLint静态代码校验初探
“OCLint是一个能够让我们的OC,C,C++代码变得更加优雅的检测分析工具–鲁迅”
OCLint的目的
在开发过程中,特别是团队协作开发中,规范的重要性不言而喻,他可以降低沟通成本,增加代码可读性与可维护性提高可靠性与健壮性,作为一名优秀的开发人员,我们应该不断完善并严格遵守相关规范,但是实际情况是,由于我们的疏忽,或者工期的紧张等因素,导致在某些时候开发过程中变得随心所欲,代码变得为所欲为,进而对后期的维护造成不良影响,甚至原地crash>_<!,而OCLint
可以帮助我们来检查代码是否遵守了某些规范,是否存在一些潜在的问题,降低review成本。
OCLint能检测哪些问题
附官方文档OCLint
- 代码长度,过长或过短,包含方法,变量等
- 未使用的代码,包括变量和方法
- 代码复杂度,多重循环以及多重判断等
- 语法错误
OCLint安装
OCLint有多种安装方式,此处采取Homebrew
安装,so 默认你的电脑已经安装了Homebrew
,如果没安装,请先去安装Homebrew,一次就够,你会爱上它的😊
1 | brew tap oclint/formulae |
为什么要执行第一句?因为要先安装OCLint
的依赖,否则会报错,安装结束执行:
1 | oclint --version |
如果出现类似下面的信息,说明安装成功
1 | LLVM (http://llvm.org/): |
紧接着安装xcpretty
这个东西是什么呢?它可以格式化xcodebuild
的输出,增加可读性并可以生成报告,执行下面命令安装
1 | sudo gem install xcpretty |
安装结束检查是否安装成功
1 | xcpretty -v |
如果出现类似下面的版本号信息说明安装成功
1 | 0.3.0 |
OCLint使用
OCLint作为静态代码检测工具是可以直接在Xcode
中使用的,也可以在终端进行操作,本文介绍的是终端操作方式,Xcode
使用后续补充;首先进入项目根目录执行如下命令:
1 | xcodebuild clean |
这一步会对项目进行分析并会在根目录生成一个build
目录,并将分析日志输出在xcodebuild.log
文件中
1 | xcodebuild |xcpretty -r json-compilation-database -o compile_commands.json |
这一步是将编译结果输出在compile_commands.json
文件中,这里有一个点要注意的就是,如果你已经编译过并将结果输出在compile_commands.json
中,那么再次编译时已编译过的内容是不会被覆盖的,如果希望每次都重头操作,那么可以使用xcodebuild clean
命令清除缓存,这也是第一步执行此命令的原因。
最后一步是将分析结果生成报告,这中间就会用到各种校验规则了,OCLint默认有些规则,包含了可能出现的大部分场景,当然也可以根据OCLint提供的方法自定义规则,执行如下命令生成报告
1 | oclint-json-compilation-database -e Pods -- -report-type html |
最终会在根目录生成一个report.html
文件,点击打开可查看分析结果,大概是下面这个样子
另外上述出现的操作命令为了简便写了一个脚本,仅做参考,需要的自取
因为我此处只是为了展示,所以创建了一个空项目,并没有写内容,所以分析报告一片空白😂😂😂
本篇文章只做OCLint使用的初步介绍,实际上我在安装使用的过程中遇到了很多必然或偶然的坑,另外对于OCLint
也并没有做详细的介绍,比如OCLint
默认规则的介绍,如何自定义规则,相关套件的作用,以及OCLint
的缺点等等,随后有时间我会一一整理补充上来。嗯,就酱~
- 本文标题:OCLint静态代码校验初探
- 本文作者:Lazyloading
- 创建时间:2019-08-19 21:04:41
- 本文链接:https://lazy.wiki/posts/7dc3b748/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!