在开发中,我们也许会碰到以下需求:对于一些动态复杂的交互界面,手码去制定界面是常有的事情,然而我们在开发中想修改过一些参数后想看下实时效果,只能重新运行项目,进入到对应的页面来进行修改,是不是有点麻烦呢? 还有,作为屌丝程序猿想脱离屌丝行列,不断学习先进的东东是必不可少的,那么,如果看到别的大公司开发的优秀APP,想借鉴学习下,又该怎么入手呢?这时,Reveal会帮助我们。

  1、Reveal的下载

    进入到官网(http://revealapp.com/)后

    

    下载就可以(注意下载后默认保存的是在“下载”下面,手动移动到“应用程序”下面,方便下面使用时的一些操作)。

  2、界面认识

    

  3、Reveal的使用

    1》连接到模拟器调试

      连接到模拟器调试有好几种方法,有的是必须修改功能文件(缺点显而易见,协作开发时得要求别人也安装这玩意),有的是断点后在LLDB输入命令等等。在这就简单记录下最方便简单地一种方式,步骤如下:

      (1)在当前用户目录下,建立.lldbinit文件,并输入以下内容并保存

        command alias reveal_load_sim expr (void*)dlopen("/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib", 0x2);

        command alias reveal_load_dev expr (void*)dlopen([(NSString*)[(NSBundle*)[NSBundle mainBundle] pathForResource:@"libReveal" ofType:@"dylib"] cStringUsingEncoding:0x4], 0x2);

        command alias reveal_start expr (void)[(NSNotificationCenter*)[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStart" object:nil];

        command alias reveal_stop expr (void)[(NSNotificationCenter*)[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStop" object:nil];

      (2)在项目代理中的application:didFinishLaunchingWithOptions:方法中,进行以下几步,

        第一:添加一个断点,并右击编辑

        第二:单击“Action”右边的“+”,输入“reveal_load_sim”

        第三:勾选上“Option” 上的选项 “Automatically continue after evaluating”,如图:

        

    然后运行APP在模拟器,打开Reveal就可以看到左上角有个连接调试。到此就可以尽情享受你的成果了。

  2》连接到真机调试

    (1)添加Reveal链接动态库到我们工程:在Reveal菜单“Help”->"Show Reveal Library in Finder" 找到动态库后拖拽到工程中;

    (2)注意Xcode默认是将其设置到“Link Binary With Libraries”中,需要删除它,并添加到 “Copy Bundle Resources”下面;

    (3)下面步骤与上面类似,只需要将断点中得Action 改为 reveal_load_dev 就可以了。

  3》使用此工具调试其他应用界面

    (1)要求手机必须越狱,至于越狱教程,去其他地方搜吧,好多

    (2)将Reveal 的动态链接库上传到iOS设备目录 /Library/MobileSubstrate/DynamicLibraries (这里存放着所有在系统启动时就需要加载的动态链接库)中即可。(上传方法;可以安装OpenSSH后,用scp来上传)

    (3)同时编辑并上传一个libReveal.plist,格式如下:

      {

        Filter={

            Bundles = ("需要分析的BundleID 1","需要分析的BundleID 2" …);

        };

      }

    这样可以监控指定的APP,不上传这个文件也可以,那样就可以监控所有的APP,速度慢点而已。

    注意:如果libReveal.dylib没有执行权限,可以使用 chmod+x libReveal.dylib命令来增加权限后,执行 killall SpringBoard重启桌面。

  当然,类似的软件还有PonyDebugger, Spark Inspector来进行调试。

项目总结(五)--- 界面调试工具Reveal的更多相关文章

  1. iOS界面调试工具 Reveal-备用

    Reveal是一个iOS程序界面调试工具.使用Reveal,我们可以在iOS开发时动态地查看和修改应用程序的界面. 对于动态或复杂的交互界面,手写UI是不可避免的.通过Reveal,我们可以方便地调试 ...

  2. 界面调试工具Reveal的使用介绍

    Reveal 注: 此处介绍Reveal,其中大部分内容来自于唐巧的<iOS开发进阶>一书,以此说明. 如何使用Reveal进行模拟器调试,只需进行以下三个步骤即可. 1. 创建.lldb ...

  3. 界面调试工具reveal

    iOS界面调试工具 Reveal 转自 http://chuansong.me/n/1308113 原创2015-04-17 唐巧iOS开发 Reveal是一个iOS程序界面调试工具.使用Reveal ...

  4. Reveal : Xcode辅助界面调试工具

    Reveal简介: Reveal是一款iOS界面调试工具,辅助Xcode进行界面调试,使用它可以在iOS开发的时候动态的查看和修改应用程序的界面. 软件下载 首先去官网下载Reveal,下载地址:ht ...

  5. React 实践项目 (五)

    React在Github上已经有接近70000的 star 数了,是目前最热门的前端框架.而我学习React也有一段时间了,现在就开始用 React+Redux 进行实战! React 实践项目 (一 ...

  6. miniFTP项目实战五

    项目简介: 在Linux环境下用C语言开发的Vsftpd的简化版本,拥有部分Vsftpd功能和相同的FTP协议,系统的主要架构采用多进程模型,每当有一个新的客户连接到达,主进程就会派生出一个ftp服务 ...

  7. swift项目第五天:swift中storyBoard Reference搭建主界面

    一:StoryBoard Reference的介绍 StoryBoard Reference是Xcode7,iOS9出现的新功能 目的是让我们可以更好的使用storyboard来开发项目 在之前的开发 ...

  8. [php笔记]项目开发五个阶段/雇员管理系统

    zend 公司,管理PHP版本的升级. 功能强大, 官方推荐. (开发一个PHP项目) 软件开发的五个阶段. 1.创建一个项目(工程)2.设置该项目的路径3.创建一个文件test.php ***使用Z ...

  9. 整合大量开源库项目(五)跳动的TextView JumpingBeans,良好体验的滚动条ConvenientBanner

    转载请注明出处:王亟亟的大牛之路 时间过得非常快,这一系列已经写了第五篇了(感觉还要写好久).今天又引入了2个非常好用的库JumpingBeans,ConvenientBanner.首先.先看一下效果 ...

随机推荐

  1. 取出list的数组元素

    java中将list中的一维数组中的元素取出需要2步.第一步:获取list的迭代器,将数组从迭代器中遍历取出:第二部:对取出的数组进行遍历,取出数组中存储的元素.java的list集合中只能存储引用型 ...

  2. Scrapy中的item是什么

    这两天看Scrapy,看到item这个东西,觉得有点抽象,查了一下,有点明白了. Item 是保存爬取到的数据的容器:其使用方法和python字典类似, 并且提供了额外保护机制来避免拼写错误导致的未定 ...

  3. 使用Java的嵌套循环打印出平行四边形、等腰三角形、棱形、矩形的星星图案(Java工程师面试必备)

    第一遍是看了视频,听老师讲解嵌套循环的使用,然后到星星图形这一步,当时都觉得听明白了,但是自己去做,就是写不出来 第二遍看了赵老师的教程,看了好熟悉的感觉,还是自己写不出来 第三遍找网上关于图形的嵌套 ...

  4. 北航 编译实践 PL/0文法

    编译实践-PL\0编译系统实现 姓名:   专业: 计算机科学与技术 学院: 软件学院 提交时间: 2013年12月25日 北京航空航天大学·软件学院 编译实践-PL\0编译系统实现 实验要求 以个人 ...

  5. POJ2823Sliding Window

    Sliding Window Time Limit: 12000MS   Memory Limit: 65536K Total Submissions: 49919   Accepted: 14391 ...

  6. MyEclipse------快速读取特定目录下的文件的内容(字节输入流)

    other.jsp <%@ page language="java" import="java.util.*" pageEncoding="UT ...

  7. 验证码点击刷新 this.src=this.src+'?'+Math.random()

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. goquery

    使用goquery 会用jquery的,goquery基本可以1分钟上手,下面是goquery文档 http://godoc.org/github.com/PuerkitoBio/goquery 1. ...

  9. Nginx 服务器性能参数设置

    Nginx服务器性能调优 Nginx 配置文件 1.根据CPU内核数设置worker进程个数,以12核CPU为例,设置11个worker进程: worker_processes 11; worker_ ...

  10. phpcms 采集教程

    Phpcms网站管理系统目前最新版本为Phpcms v9,作为国内主流CMS系统之一,目前已有数万网站的应用规模.那么其自带的采集模块功能如何呢,来看看吧. 文章采集 Phpcms v9默认内置有文章 ...