使用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. Eclipse项目修改没有同步到编译的问题

    有两个原因: 1:项目有错,不能正常编译:查看是否有Jar包冲突.JDK版本问题等: 2:编译输出目录配置错误: Maven项目会修改项目编译时的输出路径到target文件夹,但是我们用Myelips ...

  2. C++11中的mutex, lock,condition variable实现分析

    本文分析的是llvm libc++的实现:http://libcxx.llvm.org/ C++11中的各种mutex, lock对象,实际上都是对posix的mutex,condition的封装.不 ...

  3. 【Linux】将一个命令的输出发送给另外一个命令

    一个命令的输出可以作为下一个命令的输入,下一个命令的输出又会传递给下一个命令 我们通常使用管道和子shell的方法来组合多个命令的输出 格式 $ cmd1 |cmd2 | cmd3 这里的3个组合命令 ...

  4. V-rep学习笔记:机器人模型创建3—搭建动力学模型

    接着之前写的V-rep学习笔记:机器人模型创建2—添加关节继续机器人创建流程.如果已经添加好关节,那么就可以进入流程的最后一步:搭建层次结构模型和模型定义(build the model hierar ...

  5. django之创建第7-1个项目-url配置高级

    修改urls.PY文件 # -*- coding: UTF-8 -*- from django.conf.urls import patterns, include, url # Uncomment ...

  6. IBM应该请我去做Domino产品设计架构师

                                  作者: 亓锋                         2012年11月19日16:56  来源: 速途专栏              ...

  7. LR接口性能测试提示Code - 60990 Error: Two Way Communication Error: Function two_way_comm_post_message / two_ (转载)

    一.在做JAVA接口性能测试时,场景在运行中出现:Code - 60990 Error: Two Way Communication Error: Function two_way_comm_post ...

  8. SSD基本工作原理

    SSD主要由SSD控制器,FLASH存储阵列,板上DRAM(可选),以及跟HOST接口(诸如SATA,SAS, PCIe等)组成. SSD主控通过若干个通道(channel)并行操作多块FLASH颗粒 ...

  9. Go map中一个很重要的特性

    先看一段代码: func main() { m := make(map[int]string) m[1] = "a" m[2] = "b" m[3] = &qu ...

  10. 设置树莓派SSH连接因超时闲置断开(转)

    设置树莓派SSH连接因超时闲置断开 转自:http://shumeipai.nxez.com/2013/12/06/set-ssh-connection-is-disconnected-due-to- ...