iOS开发提升效率工具之InjectionIII
2019-08-14 本文已影响0人
joeal
iOS开发提升效率工具之InjectionIII
前言
随着项目越来越大,每次build的时间也是在变长。当只是修改一个UI上的小问题时,比如字体、颜色、frame就要重新build再次等待一段时间,这种开发效率是大大打了折扣的,并且开发体验也不爽。使用此工具后无需重新build,修改完成后command + S
,然后退出修改页面再进入就可以看到变化了。
只支持模拟器!只支持模拟器!只支持模拟器!
前不久在App Store看到了InjectionIII更新了,有空就总结分享一下。
一、下载
在App Store搜索InjectionIII
并下载。
二、打开工程
下载完成后打开此软件,Mac状态栏点击InjectionIII
->Open Project
选择你的工程文件夹然后确定Select Project Directory
。操作完成后再用Xcode打开此工程。
三、配置
Xcode打开工程后,在AppDelegate
的didFinishLaunchingWithOptions
方法内注入InjectionIII
Xcode版本大于等于10.2如下注入:
#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的如下注入:
#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日志。有如下输出则成功注入了,可以愉快的编码了~
💉 Injection connected, watching /Users/zhouqiang/Desktop/Project/AnXinCollege/**
比如我修改了SettingViewController
文件,并command + S
保存后日志输出如下,则代表成功了。
💉 *** 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地址