今天 Mac App Store 提示软件更新,一看是 InjectionIII 更新了,而且这次更新是针对 Xcode10 的支持,赶紧上车更新一波。
由于这次更新后,配合 Xcode10 使用方式和之前的版本略有差异,所以在此介绍一下。
在介绍这款工具之前首先得感谢 John Holdsworth 开发者给我们iOS开发提供了帮助。假如你的项目每次 build 时间在半分钟以上,或者你电脑的配置不高,导致每次运行项目都很慢,那么你完全可以尝试一下这个神一样的工具!(提示:目前好像只支持在模拟器上使用,而且支持 OC 和 Swift)
废话不多说,先来欣赏一下功能演示:
真正的所见即所得!
另外,在使用 Injection 的时候需要先打开 Injection App,然后通过 Open Project 菜单按钮打开 Xcode工程所在的目录让 Injection 监控其文件变化,然后就可以打开 Xcode,将 Injection 启动代码加入 AppDelegate,把项目跑在模拟器上,接下来就可以愉快的编码啦(具体的流程,下面也会提到)。
提高开发效率
每当我写页面或者改 bug 的时候难免需要即时查看运行效果,有时候改了一个 label 的字体,或者背景颜色,或者 frame,都需要重新运行,但是现在不需要了,只要按下 command + S,保存当前文件。
文件保存的时候可以看到 Injection 的图标会变成绿色,这个时候表示正在执行热更新,过一会儿颜色又变成红色(这个过程可能很快,仔细观察可以看到)。
变成红色以后热修复就执行完了,可以查看效果了,官方表示保存以后可以立马看到效果,实际上是在修改的代码执行的时候会看到变化,所以往往都是退出这个页面,重新进入,如果是列表需要上下滑动才能看到效果。
使用十分便捷
这个是 Mac 上的一款 App,可以在 Mac App Store 中搜索 Injection,那款免费的 App 就是,现在已经更新到第三个版本,点击安装
找到你的 AppDelegate 实现文件,上代码:
OC 版
1 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { |
Swift 版
1 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { |
注意这里路径不要写错,建议复制粘贴。
打开你的项目,command + R,运行项目,(如果你之前没有通过 Injection 添加项目路径,这个时候会弹出来一个选择框,让你选择项目的根路径。)
选择好当前项目的根目录,然后点击 Select Project Directory
按钮。
这个时候程序会继续运行,注意看 Xcode 控制台的 log日志。
1 | Injection connected, watching /Users/bruce/Desktop/Demo/Timer/** |
看到这句话的时候说明已经OK了,可以开始你的表演了!
在每次修改保存文件以后都会看到下面这句话 👇,如果没有看到效果,请排查下面列举的原因。
1 | *** Compiling /Users/bruce/Desktop/Demo/Timer/Timer/ViewController.m *** |
下面说一下有时候没有看到效果的原因。
没有看到效果的问题的总结
- 确认 Injection 监听的目录和 Xcode 项目目录是否一致。
- 再看下有没有保存成功,也就是针筒的颜色由绿色变成红色。
- 确认上面那句话有没有打印,也就是说有没有真的运行这个工具。
- 如果修改的是 cell / item 上面的内容,需要上下滚动才能看到效果。
- 如果修改的是一个普通页面的内容,最好是退出这个页面,再进入这个页面。
- 确认 Xcode 的版本和启动时添加的代码是否匹配,Xcode10 需要
iOSInjection10.bundle
才能生效。