Injection for Xcode:成吨的提高开发效率
来源:互联网 发布:php添加mysqli扩展 编辑:程序博客网 时间:2024/04/29 08:46
今天强烈推荐一个Xcode高端必备插件:Injection Plugin for Xcode
直接放demo演示动图:
我很久以前就希望有这么一种功能,直接修改某行代码,F5一下就能刷新这个实例,而不用重写build整个项目。靠夭,我不是在说前端!
没想居然有一天,梦想照入现实!!!是的,就是它,不用重新启动应用就可以让修改的代码生效。
使用
超级简单:修改源码,按下刷新的快捷键ctrl
+=
。会有一个快速的进度条闪过,修改的代码就**生效了。**
安装
可以使用Alcatraz安装
或者clone这个项目,运行InjectionPluginLite/InjectionPlugin.xcodeproj。
检验安装成功
在某个类里添加下面的方法:
(void)injected{
NSLog(@
"I've been injected: %@"
, self);
}
或者swift下:
func injected() {
print(
"I've been injected: (self)"
)
}
打一个断点在这行代码上,按下快捷键ctrl+=后,代码执行到这个类时,如果断点进入这个方法说明你已经安装成功了。
支持Swift
Swift中的大部分类都可以正常使用。不过以下一些情况使用会有问题:
结构中的修改
标记为final的func和class
不在类里的全局函数和变量
工作原理
Injection是一个Xcode的扩展插件,可以让你修改一个类的代码实现而不用重启整个应用。
它通过解析应用的build日志来判断源代码文件上次是怎么被编译的。然后会把这些重新编译一遍包在一个已经通过动态加载器(dynamic loader)注入到应用的bundle里。这个时候其实有两个版本的类在app里,一个原始的和一个修改过的版本。修改过的版本通过和原始类"swizzled"来产生效果。
swizzling利用了OC的runtime。这个也可以在Swift中没有标记为final或者private的方法(可以被override的方法)。对结构体无效。
这个插件还可以做点什么
按照这个文档操作,还可以支持Storyboard [Storyboard-based iOS projects]
可以可视化的调整颜色 [collection of tunable parameters]
当你开始注入时,会在同一个目录下生成一个项目文件:iOSInjectionProject 或者 OSXInjectionProject。这个项目用于注入你的修改到原项目。建议加入
.gitignore
。ctrl+=的快捷键可以在 "Tunable App Parameters"面板里自定义
如果想在一台设备上使用,参考这个文档[patch to your project]
我安装时遇到的一个错误
第一次使用,提示我项目里使用的一个第三方framework找不到。这个时候打开它自动生成的iOSInjectionProject,编译一下可以看到错误的具体原因。我看到issue里也好多人遇到。解决方式就是将自己项目framework search paths中的这个第三方框架的路径拷贝到iOSInjectionProject里。
- Injection for Xcode:成吨的提高开发效率
- Injection for Xcode:成吨的提高开发效率
- Injection Plugin for Xcode成吨的提高开发效率!
- Injection for Xcode:成吨的提高开发效率
- Injection for Xcode:成吨的提高开发效率
- 提高开发效率的xcode快捷键
- injection for XCode 的局限性
- 关于使用xCode的Tab来提高开发效率
- xcode常用快捷键大全:提高你的开发效率
- 10款提高 iOS 开发效率的 XCode 插件
- 利用Xcode的代码块功能,提高开发效率
- 提高XCode开发效率的插件及管理
- **xcode常用快捷键大全:提高你的开发效率**
- Injection Plugin for Xcode
- Injection for Xcode
- injection plugin for xcode【转】
- Injection Plugin for Xcode 分析
- UI 调试神器 injection for Xcode 的使用详解
- 最长队名
- 无意中写错的一个函数值得谨记与反思
- Android开发常用的十几种工具类
- JAVA IO流总结
- HDU233 还是畅通工程(最小生成树)
- Injection for Xcode:成吨的提高开发效率
- centos7 搭建SolrCloud集群
- Webpack前端打包工具
- MySQL备份、还原、innoDB开启
- shell命令之while,break,continue
- 将正方形矩阵顺时针转动90度
- 让编译器对一些警告闭嘴
- Python网络爬虫获取股票信息
- <我们心中的雪>-郭文斌