zoukankan      html  css  js  c++  java
  • 不修改Xcode项目加载Reveal

       关 于iOS UI调试工具Reveal的配置,很多初学者朋友可能在网上搜索到一些文章,这些文章大部分都是讲述了如何通过配置Xcode项目,通过加入一些库文件, 并且在程序中编写额外的代码来调用Reveal服务,从而保证调试程序的时候能够将项目附加到Reveal中分析。

          这种方式,比较繁琐,并且每写个项目都需要重复这些繁琐的步骤,这是让人难以忍受的。为此,在下通过诸多分析尝试,终于发现了一种一劳永逸的方法。现在就 将这个方法介绍给大家。这个方法不是我发明的,这是Reveal官方的文档提供的方法。但是网上鲜少提及,我在这里把这个方法介绍给大家。这个方法是通过 Xcode断点命令来调用Reveal服务,然后保证在程序在模拟器运行的时候,Reveal随时都可以附加上,这样就可以方便地分析UI的层次结构。这 个方法只需要对Xcode做一次配置,从此以后,任何时候都可以使用Reveal,这是极其方便的,避免了每次繁琐的项目配置,并且不需要编写任何代码。 下面我就详细地跟大家介绍一下具体的配置方法。

    如果你尚未安装Reveal,建议从官方下载安装试用。

    本文使用的Reveal版本是1.5.1

    下面是详细的配置步骤:

    1.在Xcode中打开一个iOS项目,选择菜单项View → Navigators → Show Breakpoint Navigator.步骤如下图所示:


    2.在左侧的导航面板下方,点击“+”并且选择【Add Symbolic Breakpoint 】菜单项,如下图所示:



    3.在弹出面板的Symbol字段中填写“UIApplicationMain”,如下图:



    4.点击Add Action 按钮,如下图:



    5.复制如下的命令粘贴到上图中所示的编辑框:

    expr (Class)NSClassFromString(@"IBARevealLoader") == nil ? (void *)dlopen("/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib", 0x2) : ((void*)0)

    如下图所示:



    上述命令中,有个路径字符串

    /Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib

    请确保这个字符串所指的文件在磁盘上存在(正常情况下,如果将Reveal安装到Application目录,这里不会出问题)。

    6.勾选Automatically continue after evaluating actions选项



    7.完成上述步骤以后,在新创建的断点上面点击右键,弹出如下菜单并选择,如下图所示:




    现在,所有的配置步骤均已完成。以后无论分析任何项目,都可以直接启动Reveal 并分析。

    现在启动一个项目调试,Xcode控制台会输出如下log,表明配置正确,Reveal已经可以正常启动使用,如下图所示:


    接下来启动Reveal,如下图操作:


    下面体验一下Reveal的强悍吧:




    在上面这个演示demo中,足以说明Reveal的强大与方便,各种层次结构一目了然,特别是针对那些不规则的UI实现,可以进行方便的分析。

  • 相关阅读:
    在SQLite中使用索引优化查询速度
    SQLite支持的SQL数据操作
    left (outer) join , right (outer) join, full (outer) join, (inner) join, cross join 区别
    深入理解Android内存管理原理(六)
    Merge Sorted Array
    Sort Colors
    Construct Binary Tree from Preorder and Inorder Traversal
    Binary Tree Postorder Traversal
    Symmetric Tree
    Rotate Image
  • 原文地址:https://www.cnblogs.com/jgCho/p/5367200.html
Copyright © 2011-2022 走看看