iOS代碼檢測入坑記事

iOS代碼檢測入坑記事

我接觸的代碼檢測

  • OCLint + xcpretty
  • sonar
  • infer

infer

具體使用

infer -- xcodebuild -target <target name> -configuration <build configuration> -sdk iphonesimulator

例如:

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

#根據(jù)自己醒目名字使用infer 命令進行分析
infer -- xcodebuild -workspace HIGHTONG_Public.xcworkspace -scheme HIGHTONG_Jktv -configuration Debug -sdk iphoneos11.0

infer的優(yōu)勢

  • 安裝過程簡潔,不需要過多的配置(前提是電腦之前安裝過Homebrow)
  • 使用方便,只需要一行命令

sonar

Sonar 是一個用于代碼質(zhì)量管理的開放平臺。通過插件機制,Sonar 可以集成不同的測試工具,代碼分析工具,以及持續(xù)集成工具。相比于Jenkins ,sonar更關注代碼的變化,通過量化的方式度量代碼變化。

如果不需要持續(xù)集成,sonar只需要兩個配置文件就可以進行代碼的靜態(tài)檢測。

  • 安裝: brew install sonar
  • 配置文件修改 run-sonar.sh sonar-project.properties
  • 執(zhí)行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代碼質(zhì)量監(jiān)控](http://www.itdecent.cn/p/f58e89573d33)

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

* [iOS Sonar集成流程詳解](http://www.itdecent.cn/p/74bee59fef1c)

* [基于Sonar的iOS代碼質(zhì)量檢測系統(tǒng)](http://www.itdecent.cn/p/6b61783b9a38)

* [IOS測試之sonar檢查ios代碼質(zhì)量](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 分析(根據(jù)一定規(guī)則進行分析)
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 \

高級用法,代碼檢測規(guī)則:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明AI閱讀 16,211評論 3 119
  • 開篇放歌曲 北方女王 這首歌,以前也有聽過,但是以前沒有這么多的感想。 最近單曲循環(huán)了一段時間,感觸頗...
    卑悲汪閱讀 2,570評論 0 1
  • 2017年4月24日,周一,雨 今天,大學室友約去聚餐,原來是她男友的生日。加上他的兩個室友,五個人一起,吃了大餐...
    一抹淺色閱讀 220評論 0 0
  • 時而親密 時而疏遠,不知道究竟是什么, 難道你真的看不出來嘛,在我的言語之間, 算了吧還是接受別人吧 反...
    哪三急閱讀 284評論 0 0

友情鏈接更多精彩內(nèi)容