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