在极客时间上,通过戴铭老师的讲课,让我认识到了InjectionIII工具,想着了解了解.John Holdsworth 开发了一个叫作 Injection 的工具,可以动态的将swift或者Objective-C的代码在已运行的程序中执行,以加快调试速度,同时保证程序不用重启,同时也提供了动画演示效果,如下:
Injection使用示例.gif
经过简单的测试,发现其中的优缺点,并罗列下来:
优点:项目过大,不用每次都耗费很长的时间进行编译查看,直接commond+s保存即可,时长一般在30秒左右
缺点:只支持模拟器,导致有些只支持真机的项目没有办法使用,或者使用起来比较麻烦,而且我觉得有时候会不太稳定
感兴趣的同学可以继续往下看使用方法
1.App Store上下载InjectionIII工具,标识是如下:
2.用InjectionIII工具打开项目,并且打开项目的下面有一个File Watcher一定要选中打开
打开项目
选中项目
3.在AppDelegate中加入引用InjectionIII工具的代码
#if DEBUG
// iOS
[[NSBundle bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/iOSInjection10.bundle"] load];
// tvOS
//[[NSBundle bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/tvOSInjection.bundle"] load];
// macOS
//[[NSBundle bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/macOSInjection.bundle"] load];
#endif
4.然后在模拟器上运行项目,启动之后,在控制台可以看到打印的内容,如下即表示工具连接成功:
工具连接成功
5.在修改内容的控制器中加入方法,然后commond+s保存之后,就可以在模拟器上看到效果
-(void)injected{
//修改的内容
[self changed];
}
总结:目前我只是简单的了解一下,但是项目中使用的心得还需要在后续的使用中慢慢总结,希望能给想了解这个工具的人提供一点思路,菜鸟一枚,希望共同进步.
网友评论