Reveal使用
sudo spctl --master-disable mac开放权限
-ObjC -weak_framework RevealServer 配置路径
1.下载一个正版的reveal来安装。
2.打开终端,输入vim ~/.lldbinit创建一个名为.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个别名的意义如下:
1)reveal_load_sim 模拟器加载reveal调试用的动态链接库。
2)reveal_load_dev 真机加载reveal调试用的动态链接库。
3)reveal_start 启动reveal调试功能。
4)reveal_stop 结束reveal调试功能。
3.在AppDelegate类的application:(UIApplication *)application didFinishLaunchingWithOptions:方法中接入下面3个操作,如下如:
-
增加一个断点,右击断点,选择"Edit BreakPoint".
-
单击"Action"右边的"Add Action",然后输入"reveal_load_sim".
-
勾选上"Options"上的“Automatically continue after evaluating actions”选项。
之后运行我们运行模拟器,打开reveal,就可以在reveal界面左上角看到有模拟器可以选择调试,选择它,则可以在reveal中查看调试iOS程序的界面了。
4.用revea连接真机(补充:似乎现在这个方法已经不生效了)
要用reveal连接真机调试,我们需要先把reveal的动态链接库上传到真机上。由于iOS设备有沙盒存在,所以我们只能将reveal的动态链接库添加到工程里。
1)选择reveal菜单栏的"Help"->"Show Reveal library in Finder"选项,可以在Finder中找到Reveal的动态链接库libReveal.dylib.
2)将该文件拖到工程里,Xcode默认将libReveal.dylib设置到"Link Binary With Libraries",我们需要进行调整,将"Link Binary With Libraries"中的libReveal.dylib删除,再将其添加到"Copy Bundle Resources"下面。
3)之后用Reveal连接真机的方式和连接模拟器的方式类似,我们只需把上面提到的断点Action的内容从reveal_load_sim改成reveal_load_dev即可。
补充:1.关于正版reveal的使用
reveal时收费的,所以。。。,它有30天的试用期,到30天过期后,到~/Library/Preferences/com.ittybittyapps.Reveal.plist,把这个plist文件删除,然后重启电脑,就可以了。虽然麻烦点儿,将就着使吧。
2.在打包上传的时候libReveal.dylib是需要删除的,不然会报错。