1. 程式人生 > >OCLint靜態程式碼分析

OCLint靜態程式碼分析

1.安裝

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

gem install xcpretty報錯:

錯誤:執行gem時(Gem :: FilePermissionError)

重新安裝沖泡後在安裝xcpretty

brew安裝紅寶石

確認安裝成功

執行oclint確認環境配置正確

1$ oclint

如果展示以下內容即為安裝成功:

1oclint: Not enough positional command line arguments specified!Must specify 

2. 更新

// 以後可能需要更新
brew update
brew upgrade oclint

3.使用

Xcode IDE

oclint 可以和 Xcode IDE 結合,把錯誤直接在 IDE 中顯示出來。

首先,我們在專案中建立一個新的 target,然後選擇 Aggregate 作為模板。

然後給這個 target 命名,注意我們可以建立多個 target,然後分別關注程式碼分析的多個方面。

然後在 Build Phases 選項卡中選擇 Add Run Script。

關於指令碼的編寫我們仍然選擇最簡單的方式,即 xcodebuild + xcpretty + oclint-json-compilation-database 的方式來做 oclint。指令碼如下:

myworkspace=haha.xcworkspace # 替換workspace的名字
myscheme=haha # 替換scheme的名字
xcodebuild -workspace $myworkspace -scheme $myscheme clean&&
xcodebuild -workspace $myworkspace -scheme $myscheme \
-configuration Debug \
| xcpretty -r json-compilation-database -o compile_commands.json&&
oclint-json-compilation-database -e Pods -- \
-report-type html -o oclint_result.html \
-rc LONG_LINE=200 \
-max-priority-1=100000 \
-max-priority-2=100000 \
-max-priority-3=100000; \
rm compile_commands.json;
if
[ -f ./oclint_result.html ]; then echo '-----分析完畢-----'
open oclint_result.html

elseecho"-----分析失敗-----"; fi

過濾選項

  • -I包括,-include INCLUDES,-include包括:

  • -e EXCLUDES,-exclude EXCLUDES,-exclude EXCLUDES:

除錯選項

  • -v:通過這個選項可以輸出最終執行的oclint指令。

  • -debug:開啟這個選項會給出更詳細的資訊。但是同樣這個選項只有在OCLint的debug標示開啟的時候才有效。

可以通過 -- 的方式在指令的最後加上oclint 選項。

中間可能會在Build Succeeded後面等待一段時間,這是因為OCLint在分析檔案

等待命令執行完成,終端會打印出-----分析完畢-----字樣,
開啟專案目錄,會看到目錄下會多出一個** oclint_result.html **的檔案

如果沒有使用cocoapods,則去掉myworkspace=haha.xcworkspace-workspace $myworkspace-workspace $myworkspace,然後再在終端執行

另外可以自己建一個xx.sh的檔案,將上面程式碼貼上進去,每次在命令列進入xx.sh所在目錄執行bash xx.sh就可以了