步骤一:
1:从App Store下载
在App Store搜索InjectionIII
,出来的小护士拿的针筒标志的就是没错啦。
2:从github下载
Git地址,并且这么好用的工具竟然是开!源!的!正是有了github上这么多开源共享的大神们,代码的世界才变得越来越简单、高效、美好。
步骤二:
1.设置AppDelegate.m
打开你的源码,在AppDelegate.m
的didFinishLaunchingWithOptions
方法添加一行代码:
直接加:
[[NSBundle bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/iOSInjection.bundle"] load];
或者加:
#if DEBUG
// iOS
[[NSBundle bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/iOSInjection.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
2.关于要不要在ViewController.m 文件里 里加- (void)injected 方法,我暂时没有加:
不过你可以加上
- (void)injected{
//写入代码的声明周期调用过程基本可以覆盖所有的界面修改
[self viewWillAppear:Yes];
[self viewDidLoad];
[self viewWillDissAppear:Yes];
...
}
步骤三:
1. 打开InjectionIII工具,选择Open Project,选择你的代码所在的路径,然后点击Select Project Directory
此时的针筒是橙黄色
没打开前 针筒是蓝色的
2.运行项目
按照步骤三第1步选择完项目路径后,先在Xcode Command+R运行一下你的项目,控制台提示如下信息,即表示InjectionIII连接成功,连接成功的话InjectionIII标志会由蓝变橙(可能不同InjectionIII版本颜色不太一样)
3 出现橙色针筒标识,表示OK了
.
需要注意的点:
1. InjectionIII工具只对模拟器有效,真机无效。
2.在injected
方法里面修改的代码,再次Command+R运行时不会起作用。因为代码里面只声明了injected方法,并没有去调用,所以不会生效;我们Command+S保存代码后生效,是因为在保存后通过InjectionIII工具读取injected
方法里面修改的代码,“告诉”模拟器哪儿修改了,是InjectionIII起的作用。因此我们需要把修改的代码放到合适的位置,让程序一运行就会执行
3.发现界面改变没有效果的同学可以参考下:
command + S
后先退出当前界面再进入- 修改cell时可能要滑动一下才看到效果
4.特别注意:如果你的代码中含有React Native 的代码,请注释掉
//[[NSBundle bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/iOSInjection.bundle"] load];
它会引起 点击RN界面失灵的状况
//------------------------------结语-------------------------------------
此工具作者John HoldsworthGithub地址。
如果运行不通,可看参考链接: