Reveal无侵入使用

  • 使用终端,创建.lldbinit
$vim ~/.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];

该步骤其实是为 lldb 设置了 4 个别名,为了后续方便操作,这 4 个别名意义如下:
reveal_load_sim 为模拟器加载 reveal 调试用的动态链接库
reveal_load_dev 为真机加载 reveal 调试用的动态链接库
reveal_start 启动 reveal 调试功能
reveal_stop 结束 reveal 调试功能

  • 在项目中AppDelegate类的
    application:didFinishLaunchingWithOptions:方法中添加断点
  1. 新增一个断点,编辑断点Edit Breakpoint
  2. 点击Action右边的Add Action输入"reveal_load_sim"
  3. 勾选Options上的"Automatically continue a er evaluating"
  • 运行项目,打开Reveal选择相应模拟器

关于在Swift中使用Reveal报错问题

error: :1:8: error: consecutive statements on a line must be separated by ';'
解决方法:删除(void)*

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

推荐阅读更多精彩内容

  • 在移动开发当中,APP的界面的编写和调试占了相当的一部分时间,那么在不借助Xcode之外的第三方工具的情况下来调试...
    要上班的斌哥阅读 10,779评论 15 72
  • 前言 Reveal(https://revealapp.com)是一个iOS程序界面调试工具。使用Reveal,我...
    忻凯同学阅读 379评论 0 0
  • Reveal是一个界面调试工具。使用Reveal,我们可以在iOS开发时动态地查看和修改应用程序的界面。它类似Ch...
    Chris_js阅读 286评论 2 2
  • 我不想做好女孩儿 我想死在你面前。
    SweetCC阅读 46评论 0 0
  • ASP.NET Web 表单所有服务器控件必须出现在 标签内,同时 标签必须包含 runat="serve...
    Andr0阅读 118评论 0 0