iOS开发提升效率工具之InjectionIII

2019-08-23 17:40:39 浏览数 (1)

iOS开发提升效率工具之InjectionIII

前言

随着项目越来越大,每次build的时间也是在变长。当只是修改一个UI上的小问题时,比如字体、颜色、frame就要重新build再次等待一段时间,这种开发效率是大大打了折扣的,并且开发体验也不爽。使用此工具后无需重新build,修改完成后command S,然后退出修改页面再进入就可以看到变化了。

injection-demo.gif

只支持模拟器!只支持模拟器!只支持模拟器!

前不久在App Store看到了InjectionIII更新了,有空就总结分享一下。

一、下载

在App Store搜索InjectionIII并下载。

屏幕快照 2019-08-14 17.00.45.png

二、打开工程

下载完成后打开此软件,Mac状态栏点击InjectionIII->Open Project选择你的工程文件夹然后确定Select Project Directory。操作完成后再用Xcode打开此工程。

屏幕快照 2019-08-14 17.08.44.png

屏幕快照 2019-08-14 17.08.25.png

三、配置

Xcode打开工程后,在AppDelegatedidFinishLaunchingWithOptions方法内注入InjectionIII

Xcode版本大于等于10.2如下注入:

代码语言:javascript复制
#if DEBUG
Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/iOSInjection.bundle")?.load()
//for tvOS:
Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/tvOSInjection.bundle")?.load()
//Or for macOS:
Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/macOSInjection.bundle")?.load()
#endif

Xcode版本10.1的如下注入:

代码语言:javascript复制
#if DEBUG
Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/iOSInjection10.bundle")?.load()
//for tvOS:
Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/tvOSInjection10.bundle")?.load()
//Or for macOS:
Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/macOSInjection10.bundle")?.load()
#endif

注意文件路径不能有错,如果你有什么骚操作下载的软件被你移动到其它文件夹,就要用你的路径。

四、看Xcode日志

配置完成后,run你的项目,注意查看Xcode日志。有如下输出则成功注入了,可以愉快的编码了~

代码语言:javascript复制
? Injection connected, watching /Users/zhouqiang/Desktop/Project/AnXinCollege/**

比如我修改了SettingViewController文件,并command S保存后日志输出如下,则代表成功了。

代码语言:javascript复制
? *** Compiling /Users/zhouqiang/Desktop/Project/AnXinCollege/AnXinCollege/Modules/Mine/Setting/SettingViewController.swift ***
? Loading .dylib ...
objc[10121]: Class _TtC12AnXinCollege21SettingViewController is implemented in both /Users/zhouqiang/Library/Developer/CoreSimulator/Devices/A12F878C-ACF9-4D62-A82E-4D260EE7E08A/data/Containers/Bundle/Application/ABBB9C03-F6EE-4354-816E-9537D729FC8F/AnXinCollege.app/AnXinCollege (0x10709ed28) and /Users/zhouqiang/Library/Containers/com.johnholdsworth.InjectionIII/Data/eval101.dylib (0x1266d5da0). One of the two will be used. Which one is undefined.
? Loaded .dylib - Ignore any duplicate class warning ^
? Injected 'SettingViewController'

Tips

发现没有效果的同学可以参考下?

  • command S后先退出当前界面在进入
  • 修改cell时可能要滑动一下才看到效果

此工具作者John HoldsworthGithub地址

0 人点赞