iOS代码检测入坑记事

iOS代码检测入坑记事

我接触的代码检测

  • OCLint + xcpretty
  • sonar
  • infer

infer

  • infer官网 传送门

具体使用

infer -- xcodebuild -target  -configuration  -sdk iphonesimulator

例如:

#分析之前先把之前的build缓存清理下
xcodebuild -workspace HIGHTONG_Public.xcworkspace -scheme HIGHTONG_Jktv -configuration Debug -sdk iphoneos11.0

#根据自己醒目名字使用infer 命令进行分析
infer -- xcodebuild -workspace HIGHTONG_Public.xcworkspace -scheme HIGHTONG_Jktv -configuration Debug -sdk iphoneos11.0

infer的优势

  • 安装过程简洁,不需要过多的配置(前提是电脑之前安装过Homebrow)
  • 使用方便,只需要一行命令

sonar

Sonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。相比于Jenkins ,sonar更关注代码的变化,通过量化的方式度量代码变化。

如果不需要持续集成,sonar只需要两个配置文件就可以进行代码的静态检测。

  • 安装: brew install sonar
  • 配置文件修改 run-sonar.sh sonar-project.properties
  • 执行run-sonar.sh脚本,检测代码

资源下载

* [run-sonar.sh](https://raw.githubusercontent.com/octo-technology/sonar-objective-c/master/src/main/shell/run-sonar.sh)

* [sonar-project.properties](https://raw.githubusercontent.com/octo-technology/sonar-objective-c/master/sample/sonar-project.properties)

参考资源

* [IOS-Sonar代码质量监控](http://www.jianshu.com/p/f58e89573d33)

* [[实践]Sonar Xcode8兼容](https://my.oschina.net/ChenTF/blog/806565)

* [iOS Sonar集成流程详解](http://www.jianshu.com/p/74bee59fef1c)

* [基于Sonar的iOS代码质量检测系统](http://www.jianshu.com/p/6b61783b9a38)

* [IOS测试之sonar检查ios代码质量](http://blog.csdn.net/itfootball/article/details/45058591)

OCLint + xcpretty

  • 安装xcpretty
sudo gem install xcpretty
  • 安装OCLint
    brew tap oclint/formulae
    
    brew install oclint
    
  • 根目录下 运行脚本:
#清理
xcodebuild clean
#生成JSON文件 用于分析
xcodebuild  -workspace demo.xcworkspace -scheme demo -configuration Debug \
| tee xcodebuild.log \
| xcpretty -r json-compilation-database -o compile_commands.json
#OCLint 分析(根据一定规则进行分析)
oclint-json-compilation-database -v \
-e Pods \
-e MGLivenessDetection \
-e MGBaseKit \
-e MGIDCard \
oclint_args -- -report-type html -o oclintReport.html \
-disable-rule ObjCAssignIvarOutsideAccessors \
-disable-rule ShortVariableName \
-rc=MINIMUM_CASES_IN_SWITCH=3 \
-rc=CYCLOMATIC_COMPLEXITY=10 \
-rc=LONG_CLASS=700 \
-rc=LONG_LINE=200 \
-rc=NCSS_METHOD=40 \
-rc=NESTED_BLOCK_DEPTH=5 \
-rc=TOO_MANY_FIELDS=20 \
-rc=TOO_MANY_METHODS=30 \
-rc=TOO_MANY_PARAMETERS=6
# oclint_args -- -report-type xcode \

高级用法,代码检测规则:

  • iOS使用OCLint做静态代码分析
  • 让XCode自动CodeReview你的代码-OCLint使用
  • iOS静态代码扫描 原文链接

你可能感兴趣的:(iOS代码检测入坑记事)