iOS injection plugin Xcode 插件 无需再次编译

Xcode 每次改变代码都需要重新编辑才能调试,看看界面逻辑等等。每次编译又很慢,让我非常头疼,非常的浪费时间,一直想找一款能够无需再次编译就可以直接预览效果,今天终于发现一个Xcode,哈哈 ,相当不错。

简介

Injection Plugin For Xcode(http://injectionforxcode.com/) 是 Xcode 上的一个插件。现在我们可以用它可以随时修改代码以及逻辑,不需要重新再次编译就能直接看效果。是不是很棒!

下载安装

首先下载Injection插件,也可以用第三方插件管理工具搜索Injection直接搜索下载安装,下载安装完成后重启Xcode,这样就添加大功告成了。点击下载

如何使用

下载安装完成后,随便打开一个工程会发现工具栏Product菜单下多了一个2个选项,第一个是用于配置的,第二个是用于调试的。点击Patch Project for Injection 选项,它会自动在Prefix.pch和main.m中插入代码。不会影响程序原来的代码。如果不想要,可以点击Revert Injection’s Changes 还原设置。
图片
main.m多了下面的配置代码

1
2
3
4
5
6
7
8
9
// From here to end of file added by Injection Plugin //
#ifdef DEBUG
static char _inMainFilePath[] = __FILE__;
static const char *_inIPAddresses[] = {"127.0.0.1", "192.168.1.21", NULL};
#define INJECTION_ENABLED
#import "/Applications/Injection Plugin.app/Contents/Resources/BundleInjection.h"
#endif

##开始测试
我做了一个简单的测试.

1
2
3
4
- (IBAction)injectionTouch:(id)sender {
NSLog(@"开始测试Injection插件");
self.view.backgroundColor = [UIColor whiteColor];
}

开始状态,点击button,效果如下
图片

然后我修改代码,并且点击Product–>Injection Source
图片

常见问题

1.在真机调试过程中,可能会遇见证书问题,需要设置bundle project .需要在工程文件中提添加RunScript:

1
echo "$CODESIGNING_FOLDER_PATH" >/tmp/"$USER.ident" && echo "$CODE_SIGN_IDENTITY" >>/tmp/"$USER.ident" && exit;

图片

2.在调试过程中,遇见Bundle build or injection has failed. 错误。
经过一次又一次的重复试验,再次试验,最后终于得出结论,遇见找不到framework和头文件,不是因为没有在run script 运行脚本这里设置了echo “$CODESIGNING_FOLDER_PATH” >/tmp/“$USER.ident” && echo “$CODE_SIGN_IDENTITY” >>/tmp/“$USER.ident” && exit;就能行的,也不用打开工程在工程里面添加framework和libPath等等,大多数都是因为头文件有时候路径指的不对。