iOS工程
1.1、安装依赖工具

command line developer toolsxcprettyoclint

1.4、编译并将输出日志格式化成json文件
xcodebuild -workspace DoctorYL.xcworkspace -scheme DoctorYL clean build | tee xcodebuild.log | xcpretty -t -r json-compilation-database -o compile_commands.json

这样就把xcodebuild的日志格式化成json格式, 保存在compile_commands.json文件按中。

1.5、生成PMD格式的结果文件oclint.xml
oclint-json-compilation-database -e Pods -v -- -report-type pmd -o sonar-reports/oclint.xml

这样就将json格式的数据转换成了xml格式的数据了。

注意:oclint.xml文件的位置必须是sonar-reports/oclint.xml, 而且sonar-reports文件夹必须事先创建好。

1.6、在SonarQube中安装sonar-objective-c-plugin插件

对于iOS工程,在SonarQube中需要安装sonar-objective-c-plugin插件。 这个插件只是读取oclint工具的结果oclint.xml的。

SonarQube官方提供的sonar-objective-c-plugin插件是收费的。

这个插件也有一个开源的,地址是:https://github.com/octo-technology/sonar-objective-c

这个开源的插件虽然能使用,但是很久没有维护了。经过测试SonarQube 4.5.6可以使用,更高版本不支持。

下载源码:

git clone https://github.com/octo-technology/sonar-objective-c.git

源码工程结构如下:

这是一个Java编写的工程,我们需要编译他,他是用Maven管理的, 所以,我们要先安装Maven并配置好环境变量。

编译:

mvn clean build

将生成的jar包放到sonarqube的plugin目录下:

cp target/sonar-objective-c-plugin-0.4.0.jar ~/bin/sonarqube-5.2/extensions/plugins

重新启动SonarQube

1.7、配置sonar-project.properties

sonar-project.properties的配置如下:

sonar.projectKey=com.unionx.yilingdoctor.ios
sonar.projectName=YiLingDoctor_for_ios
sonar.projectVersion=20160318
sonar.sourceEncoding=UTF-8
sonar.language=objc
sonar.sources=DoctorYL/
sonar.objectivec.project=DoctorYL.xcodeproj
sonar.objectivec.workspace=DoctorYL.xcworkspace
sonar.objectivec.appScheme=DoctorYL