IOS OClint 的安装使用与代码分析

前言

oclint 是对C、C++、Objective-C进行静态代码检查的工具 ,使用 oclint 对代码进行静态分析可以检查和提高项目代码质量、寻找潜在的问题........

OCLint 官网简介

oclint 的安装

1.通过 homebrew 安装非常方便、快速 

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


IOS OClint 的安装使用与代码分析_第1张图片
添加target

 next

IOS OClint 的安装使用与代码分析_第2张图片
添加脚本


2.在xcode项目目录下创建分析的Shell脚本文件analysis.sh


IOS OClint 的安装使用与代码分析_第3张图片
创建.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)


IOS OClint 的安装使用与代码分析_第4张图片


5.分析完之后打开 xcode,来输入可执行的脚本即可

IOS OClint 的安装使用与代码分析_第5张图片
IOS OClint 的安装使用与代码分析_第6张图片


接下来 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   类似即可


IOS OClint 的安装使用与代码分析_第7张图片

编译成功后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 文件

你可能感兴趣的:(IOS OClint 的安装使用与代码分析)