iOS热重载工具InjectionIII使用
先上github上的git
安装步骤一:
1:从App Store下载
在App Store搜索InjectionIII,出来的小护士拿的针筒标志的就是没错啦。
2:从github下载
Git地址,开源的相对于从App Store下载版本更新。大佬们也可以看到源代码!!里面也有介绍了InjectionIII的使用步骤。
安装步骤二:
启动之后,在电脑的右上角有一个针头一样的icon,
我们进入以下步骤:
- 打开InjectionIII工具,选择Open Project,选择你的代码所在的路径,然后点击Select Project Directory
- 此时的针筒是橙黄色、没打开前 针筒是蓝色的
- 运行Xcode启动项目
安装步骤三:
AppDelegate配置,在didFinishLaunchingWithOptions配置注入
如果是OC项目
#if DEBUG
//iOS
[[NSBundle bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/iOSInjection.bundle"] load];
//同时还支持tvOS和MacOS,配置时只需要在/Applications/InjectionIII.app/Contents/Resources/目录下找到对应的bundle文件,替换路径即可
#endif
如果是Swift项目
#if DEBUG
do{
let injectionBundle = Bundle.init(path: "/Applications/InjectionIII.app/Contents/Resources/iOSInjection.bundle")
if let bundle = injectionBundle{
try bundle.loadAndReturnError()
}else{
debugPrint("Injection注入失败,未能检测到Injection")
}
}catch{
debugPrint("Injection注入失败\(error)")
}
#endif
主动完成之后启动项目,在控制台可以看到
💉 InjectionIII connected
💉 Watching files under
🎉🎉🎉说明我们就注入成功了!!🎉🎉🎉🎉
接下来我们在配置页面文件的地方 也就是在需要热重载的页面VC中,实现injected
方法,把操作UI方法添加到injected中即可
OC 代码如下:
- (void)injected{
[self viewDidLoad];
...
}
Swift代码如下:
Swift:
@objc func injected() {
#if DEBUG
self.viewDidLoad()
#endif
}
4、在UI阶段,修改外UI,直接command+s就能看到效果,部分页面可能需要重新进入该页面才能看到效果。
PS:其实逻辑也很简单 当我们使用了com+s的时候InjectionIII去掉用了injected方法 ,而在这个方法内部就重新去viewDidLoad了。
你也许会遇到一个问题就是按了command+s之后发现UI并没有热重载,
发现没有效果的同学可以参考下
1、 command + S后先退出当前界面在进入
2、修改cell时可能要滑动一下才看到效果