使用brew 安装Xctool

先跟新brew :

sudo  brew update

brew install xctool --HEAD

OK.

使用请参照 文档 如:

xctool -workspace  path/xx.xcworkspace \

-scheme schemeName \

build

等待执行....

OClint 安装

OCLint是一个静态代码分析器,可以检测的Objective-C代码(同时支持Ç和c + +),发现常见的问题:例如的if / else / try / catch和/最后声明出错,未被使用的本地实例和参数,过度复杂(有效值代码行数状语从句:常循环复杂度太高),冗余代码,代码异味,以及其他不好的代码。

下载地址: http://oclint.org/downloads.html

官方安装说明:http://docs.oclint.org/en/dev/intro/installation.html

选择mac os x或者darwin的包,下载到本地。

将下载的文件解压。

安装说明

方法1(推荐):把路径加到环境变量中(.bash_profile或者.bashrc文件中)

OCLINT_HOME=/path/to/oclint-release  如:  OCLINT_HOME= /Users/xxx/Desktop/oclint-0.9.dev.a6ffa25

export PATH=$OCLINT_HOME/bin:$PATH

方法2:把执行文件拷贝到系统目录

sudo  cp   /Users/xxx/Desktop/oclint-0.9.dev.a6ffa25/bin/oclint*  /usr/local/bin/

sudo  cp -rp /Users/xxx/Desktop/oclint-0.9.dev.a6ffa25/lib/*   /usr/local/lib/

done.

xctool + oclint  分析代码

参见:

http://docs.oclint.org/en/dev/guide/xctool.html

xctool use in Xcode

http://docs.oclint.org/en/dev/guide/xcode.html

xctool 使用oclint 分析代码脚本:

git clone   git@github.com:githhhh/xctool_oclint.git

工程比较大得话 最后生成报告的时间也会长。没事可以耐心等下。默认会把生成的html 报告文件 放在工程目录。

xctool 使用 OCLint ,配合jenkins 生成PMD 报告脚本。

https://gist.github.com/SergioEstevao/7591170

报告提示解读:

Use early exit/continue to simplify code and reduce indentation

oclint 规则建议 使用提前退出/继续简化代码,减少缩进。

这里有一个讨论 关于:

public void SomeFunction(bool someCondition)

{

if (!someCondition)

return;

// Do Something

}

or

public void SomeFunction(bool someCondition)

{

if (someCondition)

{

// Do Something

}

}

规则更倾向于 第一种。见:

http://programmers.stackexchange.com/questions/18454/should-i-return-from-a-function-early-or-use-an-if-statement

根据规则提示 ,进一步优化代码质量。可以减少垃圾代码。

参考:http://yangfei.me/blog/xctool/

xctool + oclint 安装使用的更多相关文章

  1. mac已安装xctool而简单的执行xctool打包

    先安装brew,brew是一个包管理工具,有了它我们就能够非常方便的安装xctool了,brew安装命令例如以下: curl -LsSf http://github.com/mxcl/homebrew ...

  2. xctool工具

    xctool [1]xctool的特性: 原文:http://www.infoq.com/cn/news/2013/05/Facebook-buck-xctool-build xctool是Faceb ...

  3. iOS Sonar 集成流程

    https://gold.xitu.io/entry/5781e6872e958a0054c93368 作者:advancer_chen,原文链接:http://my.oschina.net/Chen ...

  4. OC静态代码检查实战

    此文已由作者杨晓授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 在Mac OS系统上,采用Xcodebuild Analyze命令和OClint工具,对iOS项目进行静态代码 ...

  5. iOS系统提供开发环境下命令行编译工具:xcodebuild

    iOS系统提供开发环境下命令行编译工具:xcodebuild[3] xcodebuild 在介绍xcodebuild之前,需要先弄清楚一些在XCode环境下的一些概念[4]: Workspace:简单 ...

  6. Mac 安装 home Brew以及 XCTool的过程记录

    一.HomeBrew相关: 先对HomeBrew做一个简单的介绍吧,之前了解的也不多. 主要就是用于安装Unix的工具包. 注意:HomeBrew依赖于Xcode的 Command Line Tool ...

  7. 使用OClint进行iOS项目的静态代码扫描

    使用OClint进行iOS项目的静态代码扫描 原文链接:http://blog.yourtion.com/static-code-analysis-ios-using-oclint.html 最近需要 ...

  8. iOS 工程自动化 - OCLint

    前言 最近一直在做 iOS 工程自动化方向的事情,所以把自己研究和实践的内容进行记录并分享,希望能给大家一些帮助. 为什么要使用 OCLint 做为一个静态代码分析工具,我们引入 OCLint 的目的 ...

  9. jenkins 使用oclint 扫描 oc 代码

    jenkins 环境的搭建,在这里不在赘述,下面我们写一写,如何接入oclint. OCLint是一个强大的静态代码分析工具,可以用来提高代码质量,查找潜在的bug,主要针对c,c++和Objecti ...

随机推荐

  1. Spring学习笔记六:Spring整合Hibernate

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6785323.html  前言:整合概述 Spring整合Hibernate主要是把Hibernate中常用的S ...

  2. CSS3实现文字过渡移动

    1.在需要移动的对象上加上a标签,并定义CSS <a><img src="/skin/images/ico-weixin.png" /><span&g ...

  3. java 中文及特殊字符校验

      java 中文及特殊字符校验 CreateTime--2017年8月25日16:54:50 Author:Marydon 一.参考链接 http://blog.csdn.net/imduan/ar ...

  4. Windows开机BIOS启动快捷按键

    Window装系统,开机需要调整启动选项...不同的机型,进入BIOS按键不同 按键列表

  5. hihocoder第229周:最大连续字母个数

    题目链接 给定一个仅包含小写字母的字符串s(长度小于1e5),你可以交换任意两个字符的位置,现在允许交换k次,要求交换之后,s中最长的连续相同字符个数尽量多,求这个最长连续区间的长度. 样例 输入 1 ...

  6. 关于 Dropout 防止过拟合的问题

    关于 Dropout 可以防止过拟合,出处:深度学习领域大神 Hinton,在2012年文献:<Improving neural networks by preventing co-adapta ...

  7. iOS10 CAAnimationDelegate 的简单适配

    1.iOS10中CAAnimationDelegate的警告 原有的工程用xcode8打开编译后,莫名的增加了许多警告,其中关于动画的警告有这样一个,虽然运行后发现并没有什么影响,但还是要探究一下: ...

  8. 实测iOS Dynamic Framework 对 App 启动时间的影响效果

    最近看到的Slow App Startup Times里提到: The dynamic loader finds and reads the dependent dynamic libraries ( ...

  9. #探究# HTTP长连接和短连接

    本文速读: HTTP协议与TCP/IP协议的关系 因TCP协议可靠,所以HTTP通常基于TCP实现 如何理解HTTP协议是无状态的 多次请求之间没有关联关系 什么是长连接.短连接? 每次请求都建立TC ...

  10. SpringBoot配置属性转载地址

    SpringBoot配置属性系列 SpringBoot配置属性之MVC SpringBoot配置属性之Server SpringBoot配置属性之DataSource SpringBoot配置属性之N ...