OCLint 代码的静态分析工具 - Xcode

OCLint的作用

Git 地址https://github.com/oclint/oclint

OClint是针对于C,C++,Objective-C 代码的静态分析工具,目的是提高软件质量并且减少代码中存在的潜在问题

  • 可能出现的bug:if/else/try/catch 等条件语句空的声明
  • 未使用的代码:未使用的局部变量以及参数
  • 复杂的代码逻辑:高循环复杂度、NP 复杂度(懵)、高NCSS(懵)
  • 冗余代码:冗余的条件表达式以及无效的括号
  • 代码嗅觉:方法代码行过长或者参数过多
  • 不好的代码习惯:颠倒的逻辑和参数的错误分配

静态代码分析工具是侦测编译器不可见的潜在缺陷的关键技术。OCLint 具有以下先进的代码检验特性:

  • 依靠源码的抽象语法树来提高分析的精确度以及效率,误报率低动态规则
  • 灵活可扩展的配置,确保用户可以自定义分析行为
  • 命令行式的调用使持续集成成为可能

OCLint的需要安装支持

OCLint 的安装方式有很多中,这里我们选择最简单的方式:通过 Homebrew 安装。

安装 Homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安装xcpretty
sudo gem install -n /usr/local/bin  xcpretty
安装OCLint
brew tap oclint/formulae
brew install oclint

OCLint的使用

OCLint 有三个指令:oclint、oclint-json-compilation-database、oclint-xcodebuild。

  • oclint:常规核心指令。
  • oclint-json-compilation-database:从编译好的compile_commands.json 文件中读取配置信息并执行 oclint。
  • oclint-xcodebuild:主要用于生成compile_commands.json文件,现在已经不进行维护了,我们可以用xcpretty替代,来生成json文件。

OCLint的使用

用Xcode检测代码 Demo

  • 创建项目,首先在targets点添加按钮
  • 在Cross-platform选项中,选“Aggregate”,然后命名为"OCLint":
  • 接着选中OCLint Target,进入Build Phases选项,点左上角的加号,选择"New Run Script Phase"
  • 然后输入脚本:
source ~/.bash_profile

cd ${PROJECT_DIR}

xcodebuild clean

xcodebuild | tee xcodebuild.log | xcpretty -r json-compilation-database -o compile_commands.json

oclint-json-compilation-database -- -report-type xcode

注: 如果 pod 导入 添加脚本 oclint-json-compilation-database -e Pods

  • 接着选择OCLint Scheme,Command+B就可以执行了在执行前最好删除drivedata里面的数据缓存,以保证不会解析到旧的编译内容。编译成功后Xcode上会在不符合规则的代码上显示Warning:

测试结果

OCLint 代码的静态分析工具 - Xcode_第1张图片
测试结果

学习记录,欢迎批评指正

你可能感兴趣的:(OCLint 代码的静态分析工具 - Xcode)