其實(shí)在iOS日常開發(fā)當(dāng)中酪穿,我們習(xí)慣用xcodebuild analyze命令來對項(xiàng)目來進(jìn)行代碼靜態(tài)檢查,而且我們Xcode本身就支持了這個(gè)命令酱鸭,使用起來也很方便,在我們編寫代碼的時(shí)候葫盼,xcodebuild analyze就會給出警告或者錯(cuò)誤提示。
xcodebuild analyze:
Xcode 的操作方式
xcodebuild analyze在代碼編寫過程中給出的提示
其他的提示還有類似于
1.某段代碼永遠(yuǎn)不會被執(zhí)行
2.某段代碼可能會引起死循環(huán)或者內(nèi)存泄露
3.某個(gè)屬性的修飾符不匹配
等等問題 xcodebuild analyze都會給出相應(yīng)的警告村斟。而OCLint我看了許多的文章贫导,也自己去寫過幾個(gè)demo看了一下其輸出的可視化報(bào)告抛猫,我覺得其更多的是對代碼規(guī)范的一種彌補(bǔ)和幫助QA對代碼質(zhì)量進(jìn)行監(jiān)督的一種方式方法。
簡單對比一下OCLint 和 xcodebuild analyze的區(qū)別吧孩灯,也好對癥下藥闺金,有什么樣的需求就用什么
xcodebuild analyze
最大的好處就是方便,只要你下載好了Xcode就可以使用峰档,它會在你寫代碼的過程中提示你的代碼出現(xiàn)了什么問題败匹,或者在你編譯完,在其左側(cè)會有一個(gè)警告和報(bào)錯(cuò)列表讥巡,你可以點(diǎn)擊其中一個(gè)就能跳轉(zhuǎn)到對應(yīng)的代碼所在的地方掀亩。當(dāng)然,OCLint也可以和Xcode結(jié)合使用欢顷,實(shí)現(xiàn)一樣的功能槽棍。
xcodebuild analyze常用的命令行和指令:
xcodebuild analyze
xcodebuild clean
xcodebuild build
但是對于QA來說,需要定期執(zhí)行靜態(tài)代碼檢查抬驴,勢必要加入到持續(xù)集成系統(tǒng)中炼七,最好是可以通過命令行執(zhí)行;并且我們需要的是一個(gè)分類統(tǒng)計(jì)的結(jié)果怎爵,逐條列出便于跳轉(zhuǎn)的結(jié)果方便開發(fā)自查特石,但不方便QA對代碼質(zhì)量進(jìn)行把控盅蝗。所以考慮引入OCLint鳖链。
OCLint的安裝:
我習(xí)慣用homebrew 進(jìn)行安裝
1.安裝homebrew(不了解的請自行百度一下)
brew tap oclint/formulae
brew install oclint
3.運(yùn)行oclint確認(rèn)是否安裝成功,看到如下信息說明安裝成功墩莫。
$ oclint
oclint: Not enough positional command line arguments specified!
Must specify at least 1 positional arguments: See: oclint -help
安裝成功之后我們就可以開始使用了芙委。
xcodebuild 與 oclint結(jié)合
1.生成可視化文檔
1.1.
xcodebuild analyze | tee xcodebuild.log
將xcodebuild analyze的輸出信息記錄在xcodebuild.log中。
1.2.
oclint-xcodebuild xcodebuild.log
對log進(jìn)行解析狂秦,生成compile_command.json灌侣。進(jìn)行到這一步后命令行提示:
生成compile_command.json文件
Please consider using xcpretty (https://github.com/supermarin/xcpretty) instead!
終端提示需要安裝xcpretty格式化報(bào)告
安裝xcpretty(遇到問題可能是你的gem source的問題)
gem install xcpretty
重新執(zhí)行一遍命令:
xcodebuild analyze | tee xcodebuild.log | xcpretty --report json-compilation-database
最后一步生成html或pmd文件
oclint-json-compilation-database -- -report-type pmd -o report.html
or
oclint-json-compilation-database -- -report-type pmd -o report.pmd
打開report文件:
可以看到上面顯示的信息有哪個(gè)文件哪一行有什么問題都有很清晰的說明。
demo地址希望對您有所幫助