Xcode UI界面调试神器 injectionIII
Posted 张三的程序生活
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Xcode UI界面调试神器 injectionIII相关的知识,希望对你有一定的参考价值。
injectionIII简介
injectionIII 是一个运行的macOS上的Xcode插件,可以让ios开发者能够在通过commad+S操作就可以直接看到UI改变后的效果,对于UI开发阶段以及UI调试非常的有帮助。injectionIII仅仅能够在模拟器上使用,真机无法使用
injectionIII 下载途径
可以通过mac 的AppStore 搜索 injectionIII 进行下载,也可以通过github:https://github.com/johnno1962/injectionforxcode 进行下载安装,不建议使用其他非正规渠道的安装包,注:小心病毒
部署步骤
1,appDelegate.m文件中进行部署
OC项目:
```
#if DEBUG
// iOS
[[NSBundle bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/iOSInjection.bundle"] load];
// tvOS
//[[NSBundle bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/tvOSInjection.bundle"] load];
// macOS
//[[NSBundle bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/macOSInjection.bundle"] load];
#endif
```
swfit项目:
```
#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
```
2,在ViewController.m中部署
OC项目:
```
- (void)injected
{
//自定义修改...
//重新加载view
[self loadView];
[self viewDidLoad];
[self viewWillLayoutSubviews];
[self viewWillAppear:NO];
}
```
swift项目:
```
@objc func injected(){
self.loadView()
self.viewDidLoad()
self.viewDidLayoutSubviews()
self.viewWillAppear(false)
}
```
3,运行injectIII 配置项目路径
打开InjectionIII工具,选择Open Project,选择你的代码所在的路径,然后点击Select Project Directory保存。
注意:InjectionIII 的File Watcher选项要保持选中状态。
4,运行项目
按照第3步选择完项目路径后,先在Xcode Command+R运行一下你的项目,控制台提示如下信息,即表示InjectionIII连接成功,连接成功的话InjectionIII标志会由蓝变橙(可能不同InjectionIII版本颜色不太一样)。
控制台提示信息
连接成功后,就可以在第2步添加的injected
方法里面修改控件、添加控件了,修改完毕Command+S保存一下代码,立刻就在模拟器上显示修改的信息了。
需要注意的两点:
1. InjectionIII工具只对模拟器有效,真机无效。
2.在injected
方法里面修改的代码,再次Command+R运行时不会起作用。因为代码里面只声明了injected方法,并没有去调用,所以不会生效;我们Command+S保存代码后生效,是因为在保存后通过InjectionIII工具读取injected
方法里面修改的代码,“告诉”模拟器哪儿修改了,是InjectionIII起的作用。因此我们需要把修改的代码放到合适的位置,让程序一运行就会执行。
期待苹果公司能够把这些功能直接集成到Xcode里面,而且真机也能够支持,这样的话调试测试的时间会减少很多。
更多优质文章,可以微信扫码关注:
以上是关于Xcode UI界面调试神器 injectionIII的主要内容,如果未能解决你的问题,请参考以下文章
想要在 Xcode 中的 UI 测试期间在测试运行后停止调试控制台清除
Xcode 10.2.1 界面构建器 - 无法在视图控制器(或文档大纲)上移动(拖动)UI 元素