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

    数据库中函数包含四个部分:声明.返回值.函数体和异常处理. --没有参数的函数 create or replace function get_user return varchar2 is v_use ...

  2. poj 3683 2-SAT入门

    原题模型:两者(A,B)不能同时取 #include "cstdio" #include "vector" #include "stack" ...

  3. Xcode7中新技术

    Xcode7真加了两个重要的debug功能:1:Address Sanitizer: 再也不用担心 EXC_BAD_ACCESS 在项目的Scheme中Diagnostics下,选中enable ad ...

  4. POJ3070Fibonacci(矩阵快速幂+高效)

    Fibonacci Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11587   Accepted: 8229 Descri ...

  5. Android应用目录结构分析

    一.手动创建android项目 手动创建一个Android项目,命名为HelloWorld,命令如下: android create project -n HelloWorld -t 1 -p E:/ ...

  6. Spring学习8-用MyEclipse搭建SSH框架 Struts Spring Hibernate

    1.new一个web project. 2.右键项目,为项目添加Struts支持. 点击Finish.src目录下多了struts.xml配置文件. 3.使用MyEclipse DataBase Ex ...

  7. chrome 插件开发

    写在开头: 相当有意思的UI界面,编码实现,浏览速度.对于一天浏览器使用超过10个小时的人来说,能够定制自己的浏览器,是相当的具有诱惑力. Getting Started 1:目前不支持标准发布版本的 ...

  8. Java-TCP Socket编程

    TCP 的 Java 支持 协议相当于相互通信的程序间达成的一种约定,它规定了分组报文的结构.交换方式.包含的意义以及怎样对报文所包含的信息进行解析,TCP/IP 协议族有 IP 协议.TCP 协议和 ...

  9. 让我们一起学习《Node.js入门》一书吧!

    Node.js入门 读完本书之后,你将完成一个完整的web应用,该应用允许用户浏览页面以及上传文件. 里面对一些知识的讲解,让你略窥Node.js的门径.最好一段代码一段代码的写下来,我的习惯是手里拿 ...

  10. php利用淘宝IP库获取用户ip地理位置

    我们查ip的时候都是利用ip138查询的,不过那个有时候是不准确的,还不如自己引用淘宝的ip库来查询,这样准确度还高一些.不多说了,介绍一下淘宝IP地址库的使用. 淘宝IP地址库 淘宝公布了他们的IP ...