查看: 3645|回复: 0

[IOS开发教程] 使用OCLint和Sonar对iOS代码分析和质量管理

发表于 2018-2-19 08:00:04

OCLint 是一个强大的静态代码分析工具,可以用来提高代码质量,查找潜在的bug,主要针对c,c++和Objective-c的静态分析。

Sonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。

SonarQube安装
1 brew install sonarqube
SonarQube汉化

汉化插件

https://github.com/SonarQubeCommunity/sonar-l10n-zh

下载后放入如下目录:

1 /usr/local/Cellar/sonarqube/6.5/libexec/extensions/plugins
Mysql安装
1 brew install mysql

创建sonar数据库

配置sonar连接mysql
1 2 3 4 5 6 sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false sonar.jdbc.username=root sonar.jdbc.password=root sonar.sorceEncoding=UTF-8 sonar.login=admin sonar.password=admin
安装xcpretty
1 gem install xcpretty
安装OCLint
1 2 brew tap oclint/formula brew install oclint
安装sonar-scanner
1 brew install sonar-scanner
安装sonar-objective-c-plugin

backelite-sonar-objective-c-plugin-0.6.2.jar

下载后放入如下目录:

1 /usr/local/Cellar/sonarqube/6.5/libexec/extensions/plugins
重启sonar
1 sonar restart

到此Sonar环境已经基本配置好了,打开 http://127.0.0.1:9000

工程配置

将run-sonar.sh和sonar-project.properties模板放到根目录下, 修改.properties文件的内容, 然后执行run-sonar.sh就可以了。文件地址https://github.com/LeoXu92/SonarShell-iOS

最终效果

(ps.技术债累积的比较多,是时候改改了。)

遇到的问题 执行sonar-scanner时提示”The rule ‘XXX’ does not exist”

在oclint在新版本版本会新增了些规则, 需要更新sonar服务器上对应的规则列表.

先下载https://github.com/LeoXu92/sonar-objective-c代码。

然后后在路径: sonar-objective-c-develop/sonar-objective-c-plugin/src/main/resources/org/sonar/plugins/oclint 下的profile-oclint.xml与rules.txt这两个文件。添加对应的规则。

然后再执行 build-and-deploy.sh 编译出新的jar包。

如果启动不了SonarQube

删除sonarqube/6.7.1/libexec/temp文件夹重启试试。



回复

使用道具 举报