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

    一. 在不修改Xcode项目的情况下加载Reveal

    1.原文地址 : http://www.jianshu.com/p/9229812b2038?utm_campaign=hugo&utm_medium=reader_share&utm_content=note

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

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

    二.配置详情

    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实现,可以进行方便的分析。

    可以选择,但是别选择放弃
  • 相关阅读:
    js 跳转链接的几种方式
    js 指定分隔符连接数组元素join()
    Ajax async属性
    非负数正则表达式
    firefox因 HTTP 严格传输安全(HSTS)机制无法打开网页
    查看linux系统某宏的定义(另类)
    ctags高级用法
    ctags简明用法
    关于数组和指针的一道例题的解读
    让gcc和gdb支持intel格式的汇编
  • 原文地址:https://www.cnblogs.com/hangdada/p/4997166.html
Copyright © 2011-2022 走看看