1. oclint
静态分析代码工具
1.1. 常见的阈值
参考 available-thresholds OCLint 里面一些常见的阈值:
名称 | 描述 | 默认值 |
---|---|---|
CYCLOMATIC_COMPLEXITY | 循环嵌套数限制 | 10 |
LONG_CLASS | 类行数限制 | 1000 |
LONG_LINE | 每行的字符限制 | 100 |
LONG_METHOD | 方法行数限制 | 50 |
LONG_VARIABLE_NAME | 参数名字符限制 | 20 |
MAXIMUM_IF_LENGTH | if 的行数限制 | 15 |
MINIMUM_CASES_IN_SWITCH | switch case 的最小数目 | 3 |
NPATH_COMPLEXITY | 通过该方法的非循环执行路径数量限制 | 200 |
NCSS_METHOD | 连续未注释行数限制 | 30 |
NESTED_BLOCK_DEPTH | block 嵌套层数限制 | 5 |
SHORT_VARIABLE_NAME | 变量名的最小字符数限制 | 3 |
TOO_MANY_FIELDS | 类成员限制 | 20 |
TOO_MANY_METHODS | 类方法数限制 | 30 |
TOO_MANY_PARAMETERS | 参数个数限制 | 10 |
1.2. 安装
1.2.1. 先安装xctool
$ brew install xctool
1.2.2. 安装oclint
$ brew install Caskroom/cask/oclint
1.3. 使用
1.3.1. 1
File > New > Target > Other > Aggregate
添加一个名为OClint
的Aggregate
1.3.2. 2
OClint > Build Phases > + > New Run Script Phase
Shell中写入以下内容,YourProject.xcodeproj
,YourScheme
换成对应的内容
source ~/.bash_profile
cd ${SRCROOT}
xctool \
-project YourProject.xcodeproj \
-scheme YourScheme \
-reporter json-compilation-database:compile_commands.json \
build
oclint-json-compilation-database \
-e Pods \
-- -rc=LONG_LINE=100 \
-rc=NCSS_METHOD=60 \
| sed 's/\(.*\.\m\{1,2\}:[0-9]*:[0-9]*:\)/\1 warning:/'
xctool
导出compile_commands.json
文件- oclint-json-compilation-database 解析
compile_commands.json
文件 - oclint参数
- oclint -rc
1.3.3. 3
scheme 选择 OClint > build
1.4. 参考资料
- [] todo
[] todo
[] todo- [] todo- [] todo- [] todo- [] todo