0
点赞
收藏
分享

微信扫一扫

iOS热重载工具InjectionIII使用

青青子衿谈育儿 2022-02-09 阅读 31

iOS热重载工具InjectionIII使用

先上github上的git
请添加图片描述

安装步骤一:

1:从App Store下载
在App Store搜索InjectionIII,出来的小护士拿的针筒标志的就是没错啦。
在这里插入图片描述

2:从github下载
Git地址,开源的相对于从App Store下载版本更新。大佬们也可以看到源代码!!里面也有介绍了InjectionIII的使用步骤。

安装步骤二:

启动之后,在电脑的右上角有一个针头一样的icon,
我们进入以下步骤:

  1. 打开InjectionIII工具,选择Open Project,选择你的代码所在的路径,然后点击Select Project Directory
  2. 此时的针筒是橙黄色、没打开前 针筒是蓝色的
  3. 运行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时可能要滑动一下才看到效果
举报

相关推荐

0 条评论