{"repo":"sonar-next/sonar-swift","free":true,"listed":false,"github":"https://github.com/sonar-next/sonar-swift","clone":"git clone https://github.com/sonar-next/sonar-swift.git","description":"sonar-swift.SonarQube iOS Plugin, Support Objective-C/Swift/Java, Support import Infer Issue (SonarQube iOS 代码扫描插件，支持 Objective-C 和 Swift / Java，支持 Infer 结果导入 ) base on https://github.com/Idean/sonar-swift","language":"Java","stars":244,"topics":["sonarqube-ios","swift","sonar-swift","sonarqube","sonarqube-plugin","objective-c","static-analysis","sonar-objectivec","swiftlint","infer"],"license":null,"category":"dev-tools","readme_excerpt":"SonarQube iOS 代码扫描插件 English：English 介绍 静态代码扫描是一种检测项目代码的方式，能够在不运行代码的情况下对代码进行扫描，可以扫描出代码的 Bug (例如空指针)、漏洞、坏味道(例如方法内代码行数量过多)等，另外可以检测仓库的代码重复率，注释率，注释行，代码行数，复杂度等信息。 静态代码扫描可以在代码上线之前执行，并且具有执行成本低等特点，被广泛应用于 CI 流水线上。 SonarQube 是一个静态代码扫描服务，https://www.sonarqube.org/ ，支持主流语言的代码扫描，其社区版本在 GitHub 开源，地址：https://github.com/SonarSource/sonarqube。 但是对于部分语言，社区版本并不支持，例如 Objective-C 和 Swift ，本仓库希望解决的就是这两种语言的静态代码扫描分析。 SonarQube 作为一款成熟的代码扫描服务，对外提供了插件功能，支持将第三方的扫描工具的结果导入到SonarQube展示，本仓库基于 https://github.com/Idean/sonar-swift 二次开发，在原先功能的基础上新增了 Facebook Infer 扫描结果的导入。 本仓库作为 SonarQube 的iOS代码扫描插件，支持 Objective-C 语言和 Swift 语言，支持导入 SwiftLint、Infer、OCLint、Lizard、Fauxpas 工具的扫描分析结果。 ChangeLog 更新日志 1.6 版本之后最低要求 SonarQube 7.9 规则最佳实践 我们在公司内部邀请其他同事共同Review了现有的Infer规则，筛选出了部分规则进行扫描，供大家参考。 规则介绍 支持的工具介绍 Infer Infer 是由Facebook公司推出的静态代码扫描工具，支持 C/C++/Java/Objective-C 语言的扫描。 链接：https://github.com/facebook/infer Swiftlint Swiftlint 是检查 Swift 代码风格和规定的静态代码分析工具，基本上以 GitHub's Swift 代码风格指南为基础，报告的问题支持在 XCode 上展示，并且可以生成报告文件，我们将读取生成的报告文件，然后上传到 SonarQube 中。 链接：https://github.com/realm/SwiftLint lizard lizard 可以分析出 Objective-C 语言的圈复杂度，生成 xml 文件，导入到 SonarQube 的结果中。 链接：https://github.com/terryyin/lizard OCLint OCLint 是一个针对于 C/C++/Objective-C 语言的静态代码分析工具，它与Infer不同的是，它更偏向于对代码规范一类问题的扫描，所以我们将 OCLint 部分的问题归类到 坏味道 上面。 链接：https://github.com/oclint/oclint Fauxpas Faux Pas 是一款商业软件，支持对 Objective-C 语言进行扫描分析。 链接：http://fauxpasapp.com/ 下载 https://github.com/tal-tech/sonar-swift/releases 安装 将 jar 文件放置到 SonarQube 的安装目录下的 extensions/plugins/ 目录下，然后重启 So","default_branch":null,"files":null,"tree":[],"storefront":"/r/sonar-next","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/sonar-next/sonar-swift/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}