Apple隐藏的Debug利器UIDebuggingInform

2017-06-01  本文已影响21人  柚子CHA

转自 http://www.jianshu.com/p/36b887a722a7
UIDebuggingInformationOverlay是继承自UIWindow的私有类,是Apple调试们自己的app的时候用的,并没有开放给开发者。然而,这个私有类最近国外一个哥们偶然发现,发现这个工具真实太强大了。下面介绍一下这个东西怎么用。

#ifdef DEBUG//因为这个是私有的api,一定要保证上线时的包中不包含这段代码!
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
  id debugClass = NSClassFromString(@"UIDebuggingInformationOverlay");//获得对象
  [debugClass performSelector:NSSelectorFromString(@"prepareDebuggingOverlay")];//开启调试模式
#pragma clang diagnostic pop
#endif
#ifdef DEBUG//因为这个是私有的api,一定要保证上线时的包中不包含这段代码!
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
  id debugClass = NSClassFromString(@"UIDebuggingInformationOverlay");//获得对象
  [debugClass performSelector:NSSelectorFromString(@"prepareDebuggingOverlay")];//开启调试模式

  id debugOverlayInstance = [debugClass performSelector:NSSelectorFromString(@"overlay")];//手动弹出窗口
  [debugOverlayInstance performSelector:NSSelectorFromString(@"toggleVisibility")];
#pragma clang diagnostic pop
#endif

谢谢阅读此文,希望它能对你有用。

上一篇 下一篇

猜你喜欢

热点阅读