前言
oclint 是对C、C++、Objective-C进行静态代码检查的工具 ,使用 oclint 对代码进行静态分析可以检查和提高项目代码质量、寻找潜在的问题........
oclint 的安装
1.通过 homebrew 安装非常方便、快速
2.使用 xcode 代码分析需要安装 oclint和xcpretty,都可以在终端进行安装
打开终端 命令行 依次输入以下命令安装 oclint
brew tap oclint/formulae
brew install oclint
用gem安装xcpretty
sudo gem install xcpretty
确认下是否成功安装 oclint
终端输入 oclint 如给出以下提示,代表成功安装 oclint
3.使用 oclint
oclint 详细使用方法
使用 oclint 对 xcode 项目进行静态代码分析首先需要项目配置,即添加 target
1.file-new-target
next
2.在xcode项目目录下创建分析的Shell脚本文件analysis.sh
3.在.sh 文件中写入以下示例内容(compile_commands.json是生成的日志文件名)
# 移除原有的生成文件
xcodebuild clean | xcpretty
rm -r build
rm -r compile_commands.json
# Build和把日志写到目标文件
xcodebuild | xcpretty -r json-compilation-database --output compile_commands.json
4.使用终端打开项目目录
cd 项目路径
打开.sh文件 sudo ./analysis.sh
如果报错
使用sh ./analysis.sh打开即可,终端如以下即开始分析生成目标文件(compile_commands.json)
5.分析完之后打开 xcode,来输入可执行的脚本即可
接下来 command + b 编译 ,如果编译过程中报错 oclint: error: violations exceed threshold
错误原因是超过了issue 的阈值,在脚本末尾加上 -max-priority-1=9999 -max-priority-2=9999 -max-priority-3=9999
过滤项目中的第三方警告
如果 pod 导入 添加脚本 oclint-json-compilation-database -e Pods
如果手动导入 添加脚本 oclint-json-compilation-database -e FMDB -e XMLReader -e Masonry -e MJRefresh 类似即可
编译成功后Xcode上会在不符合规则的代码上显示Warning
序
可以自己参考规则列表 来自定义个人需要的规则
关于 oclint 指令 oclint、oclint-json-compilation-database、oclint-xcodebuild
oclint 是核心指令 oclint [options] -- [compiler flags]
[options]为一些参数选项,可以是规则加载选项、报告形式选项等:
-R <路径> : 检测所用的规则的路径,默认路径$(/path/to/bin/oclint)/../lib/oclint/rules
-disable-rule <规则名>: 让相对应的规则失效。
-rc <参数>=<值> :修改阈值
-report-type <报告类型>,有"text"、“html”、“json”、“pmd”、“xcode”几个类型
-o <路径> 报告生成路径。
例:oclint -R /path/to/rules -disable-rule ObjCAssignIvarOutsideAccessors -report-type xcode 是指忽略掉规则文件中指定规则
oclint-json-compilation-database 指令
oclint-json-compilation-database 指令有过滤文件选项
-i :包含进某些文件
-e : 过滤掉某些文件
xcpretty
用xcpretty生成OClint 解析用的json 文件