Reveal 是 调试UI非常的好用,比Xcode自带的Debug中的功能要强大。下载地址,可以免费使用30天.
下载好了之后,如何调试呢?
两个思路(先确保reveal的安装在 应用程序 中)
第一个是添加Reveal的framework到工程中,
第二个编辑断点或则使用终端。
这些主要讲使用第二个思路来解决。
方案一 在xcode控制台输入命令
第一步 运行程序,然后点击暂停项目。
第二步 控制台输入两条命令。
expr (Class)NSClassFromString(@"IBARevealLoader") == nil ? (void *)dlopen("/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib", 0x2) : ((void*)0)
expr (void)[(NSNotificationCenter*)[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStart" object:nil];
如果正常的话 Xcode控制台会输出
INFO: Reveal Server started
第三步
点击 continue按钮 或则 控制台输入c 然后回车,结束暂停。
第四步
打开Reveal,点击reveal左上角的 No Connection,会发现有你的程序。选择你的程序。这个时候软件中间就会出现程序的界面了。然后就可以调试了。
这个办法的弊端是一次性的,当你程序重新跑的时候,你又要按照上面的步骤再来一次,所以有没有一次性的呢?方案二就是来解决这个问题的。
方案二
打开终端,输入 vim ~/.lldbinit // 创建一个名为 .lldbinit的文件
然后输入 command alias reveal_load_sim
expr (Class)NSClassFromString(@"IBARevealLoader") == nil ? (void *)dlopen("/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib", 0x2) : ((void*)0)
和 command alias reveal_start
expr (void)[(NSNotificationCenter*)[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStart" object:nil];
我偷懒只用了其中了两个命令,而且只写了模拟器部分的。因为我觉得这还不是最简单的方法,方案三比这个更加的简单。
参考资料
唐巧的iOS开发书 界面调试工具Reveal
方案三
资料的步骤非常的详细,我就不画蛇添足了,上截图内容。
4.把下面这条命令输入到图中对应的位置
expr (Class)NSClassFromString(@"IBARevealLoader") == nil ? (void *)dlopen("/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib", 0x2) : ((void*)0)
5. 在确保勾选了 Options之后,右键断点
6.查看是否生效