iOS開發-代碼分析OCLint工具

簡介

OCLint是一個 靜態代碼分析 工具,通過檢查C、c++Objective-C 代碼並尋找潛在的問題.

OCLint 就是一個建立在 Clang 上的工具,能夠發現代碼中潛在的問題,可以用來提高質量和減少缺陷, 它目前支持C, C++, Objective-C語言

OCLint可以發現的問題

  • 可能的bug - 空的 if / else / try / catch / finally 語句
  • 未使用的代碼 - 未使用的局部變量和參數
  • 複雜的代碼 - 高圈複雜度, NPath複雜, 高NCSS
  • 冗餘代碼 - 多餘的if語句和無用的括號
  • 壞味道的代碼 - 過長的方法和過長的參數列表
  • 不好的使用 - 倒邏輯和入參重新賦值

有關更多 OCLint 的介紹見 http://oclint.org/

使用

使用文檔 http://docs.oclint.org/en/stable/guide/xcodebuild.html

文檔中有很多種使用方式:

  1. 和 xctool 一起使用
  2. 和 xcpretty 一起使用
  3. 在 xcode 內置腳本使用

xcpretty使用最爲簡單,這裏本人使用的 xcpretty 工具命令行

安裝

brew tap oclint/formulae
brew install oclint
//安裝xcpretty 
sudo gem install xcpretty

//-help命令檢測是否安裝成功
oclint -help

創建所需要的文件

關於 xcpretty 我們使用其將 xcodebuild 的原始輸出格式化到文件 compile_commands.json

xcodebuild [flags] | xcpretty -r json-compilation-database -o compile_commands.json

如果希望保留原始的xcodebuild輸出,那麼可以這樣做:

xcodebuild [flags] | tee xcodebuild.log | xcpretty -r json-compilation-database -o compile_commands.json

tee xcodebuild.log 表示輸出xcode日誌爲xcodebuild.log

調用分析指令

現在,通過編譯命令。json文件,我們可以通過簡單的調用來運行代碼分析:

oclint-json-compilation-database -- [Your Option]

就會進行掃描,輸出報告

這裏可以選擇輸出爲html或者其他類型文件 (-- 後配置)有"text"、“html”、“json”、“pmd”、“xcode”幾個類型

oclint-json-compilation-database -- -report-type html -o analysis.html

然後生成類似報告:
在這裏插入圖片描述
可以看到AFNetworking的錯誤都寫進去了,我們並不需要分析三方庫的代碼,OCLint 提供了過濾方法。

Pod等三方庫的過濾

-e: 過濾掉某些文件

oclint-json-compilation-database -e Pods -- -report-type html -o analysis1.html

查看官方文檔可以看到相關的配置項
http://docs.oclint.org/en/stable/manual/oclint.html

官方文檔
http://docs.oclint.org/en/stable/guide/xcpretty.html#generating-json-compilation-database-with-xcpretty

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章