美文网首页
oclint的错误

oclint的错误

作者: iYeso | 来源:发表于2019-03-13 12:10 被阅读0次

代码检查工具之OClint

说到Objective-C的lint检查,很多人可能首先想到的就是OClint,可惜的是,OClint目前更新到0.13就不更新了。

一: 安装

$ brew tap oclint/formulae
$ brew install oclint

验证一下

$ oclint -version
LLVM (http://llvm.org/):
  LLVM version 5.0.0svn-r313528
  Optimized build.
  Default target: x86_64-apple-darwin17.7.0
  Host CPU: haswell

OCLint (http://oclint.org/):
  OCLint version 0.13.
  Built Sep 18 2017 (08:58:40).

安装 xcpretty

$ gem install xcpretty

当然,你还需要Xcode的command line tool

注意:不需要安装xctool,因为xctool的使用是在配合xcode7那段时期,现在已经不适用了。

二: 使用

按照官网上的说明,你可能会遇到问题:

  • 如果你使用xctool,会发先xctool其实并不能编译工程了,因为xctool的编译已经被废弃了。

  • 如果你使用xcodebuild,会发现调用oclint-json-compilation-database生成报告时,会出现error。这是因为配置参数不正确同时xcodebuild的输出其实不能直接生成compile_commands.json文件了。

经过实验和摸索,目前可用的方法如下:

1: 首先确认工程可以通过命令行编译通过,sdk的参数可以通过命令行查看并选择适合自己的

$ xcodebuild -workspace XXX.xcworkspace -scheme YYY -configuration Debug -sdk iphonesimulator12.1

2: clean

$ xcodebuild -workspace XXX.xcworkspace -scheme YYY -configuration Debug -sdk iphonesimulator12.1 clean

3: 编译并生成compile_commands.json

$ xcodebuild -workspace XXX.xcworkspace -scheme YYY -configuration Debug -sdk iphonesimulator12.1 CLANG_ENABLE_MODULE_DEBUGGING=NO CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO ENABLE_BITCODE=NO COMPILER_INDEX_STORE_ENABLE=NO | tee xcodebuild.log | xcpretty -r json-compilation-database --output compile_commands.json

4: compile_commands.json的同级目录下生成报告

$ oclint-json-compilation-database -- -max-priority-1 '10' -max-priority-2 '2000' -max-priority-3 '5000' -report-type html -o result.html

如果需要xml格式的结果,可以用如下的命令:

$ oclint-json-compilation-database -- -max-priority-1 '10' -max-priority-2 '2000' -max-priority-3 '5000' -report-type pmd -o result.xml

⚠️注意 生成报告的时间可能会有点长,而且中间没有任何交互环节,所以请耐心等待。

OClint的官网

xcpretty的github地址

oclint: error: one compiler command contains multiple jobs:

iOS使用OCLint做静态代码分析

OCLint静态代码分析

相关文章

  • oclint的错误

    代码检查工具之OClint 说到Objective-C的lint检查,很多人可能首先想到的就是OClint,可惜的...

  • OCLint 代码的静态分析工具 - Xcode

    OCLint的作用 Git 地址https://github.com/oclint/oclint OClint是针...

  • iOS代码扫描-OCLint

    1、OCLint是什么 OCLint[https://github.com/oclint/oclint] 是基于L...

  • 2021-07-16

    OClint使用 brew tap oclint/formulate brew install oclint 直接...

  • iOS开发-Xcode集成OCLint

    官网指导Xcode集成OCLint网址但可能出现下面错误 in `===': invalid byte seque...

  • OClint的使用

    关于OCLint OCLint 是基于LLVM/Clang(前端编译)而开发的代码静态分析工具。 OCLint可用...

  • OCLint 安装使用

    简介 OCLint 官方文档[http://oclint.org/]OCLint是一种静态代码分析[https:/...

  • Oclint -help

    参考:OClint安装和使用和OClint手册

  • OCLint集成

    OCLint集成 编译OCLint 1、安装CMake和Ninja这两个编译工具 2、clone OCLint项目...

  • Homebrew 安装 OCLint

    Installing OCLint $ brew tap oclint/formulae $ brew insta...

网友评论

      本文标题:oclint的错误

      本文链接:https://www.haomeiwen.com/subject/fwyzpqtx.html