Injection:iOS热重载-所见即所得
2018-06-20 本文已影响672人
行走的菜谱
在介绍这款工具之前首先得感谢John Holdsworth开发者给我们iOS开发提供了帮助
假如你的项目每次build时间在半分钟以上,或者你电脑的配置不高,导致每次运行项目都很慢,那么你可以静下心来,花几分钟时间阅读完这篇文章!
先来看一个动态图
Resize icon我喜欢叫他所见即所得,让我想起了Xcode的playground,开个玩笑,说正题。先说理由,再说安装及使用方法
1. 第一个使用他的原因:可以加快我的开发速度
每当我写页面或者改bug的时候难免需要时刻运行查看效果,有时候改了一个label的字体,或者背景颜色,或者frame,都需要重新运行,但是现在不需要了,只要一步CMD+S,保存当前文件
Resize icon可以看到像护士给你打针时候用到的类似针筒的图标会变成绿色,这个时候可以理解为,护士正在给你打针,过一会儿,颜色变成红色
Resize icon变成红色以后表示护士打针打完了,可以看到效果了,官方表示保存以后可以立马看到效果,但是鄙人每次都是退出这个页面,重新进入,如果是列表需要上下滑动才能看到效果
2. 第二个使用他的原因:使用起来方便
这个是mac上的一款app,可以在App Store中搜索Injection,那款不要钱的免费的app就是,上次版本更新是在18年的05.17日,很巧合的日子。点击安装
Resize icon找到你的appdelegate.m文件,上代码:
OC版
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
#if DEBUG
[[NSBundle bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/iOSInjection.bundle"] load];
// [[NSBundle bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/macOSInjection.bundle"] load];
// [[NSBundle bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/tvOSInjection.bundle"] load];
#endif
}
switf版
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
#if DEBUG
Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/iOSInjection.bundle")?.load()
// Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/macOSInjection.bundle")?.load()
// Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/tvOSInjection.bundle")?.load()
#endif
return true
}
注意这里路径不要写错,建议粘贴赋值
废话不多说,直接点击,然后打开你的项目,CMD+R,运行项目,这个时候会弹出来一个选择框,让你选择项目的根路径
Resize icon点击你的根目录,然后点击下面的按钮
Resize icon这个时候程序会继续运行,注意看Xcode控制台的log日志
Resize icon看到这句话的时候说明已经OK了,可以开始你的表演了!在每次修改保存文件以后都会看到这句话,到这里其实已经完了。下面说一下有时候没有看到效果的原因
3. 没有看到效果的问题的总结
- 先看下有没有保存成功,也就是针筒的颜色从绿色变成红色
- 确认上面那句话有没有打印,也就是说有没有真的运行这个工具
- 如果修改的是cell/item上面的内容,需要上下滚动才能看到效果
- 如果修改的是一个普通页面的内容,最好是退出这个页面,再进入这个页面
- 确认Xcode的版本9.3及以上