每次修改UI代码都需要重新编译很烦?injectionIII帮你忙。这款插件能够直接在修改完代码之后热重载,免去了编译所需要的时间,不过只能模拟器调试。
injectionIII前身就是injection(injection地址:https://github.com/johnno1962/injectionforxcode
),但是由于xcode 8之后安装插件也需要签名了,所以没办法直接使用,虽然网上有很多安装方法,但是还是存在很多问题,于是作者直接制作了mac端的APP作为插件供开发者使用。
使用方法:
打开mac的APP Store,直接搜索injection III,如下图的就是,下载安装:
点击启动,选择Open Project,打开工程目录:
在项目代码里加入以下代码,就是找到injectionIII的APP路劲下的bundle,路劲如果不一样可以直接去APP显示包内容后查找:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
//#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
return YES;
}
然后在需要调试的控制器下面添加如下方法:
- (void)injected {
NSLog(@"inject");
//修改UI的代码直接写在这里
}
运行项目,可以看到app图标变红,并且命令行输出
**Injection connected, watching /Users/yitezh/Desktop/Test**
则说明连接成功。
最后直接在injected方法里添加或者调用修改UI的方法,然后Ctrl+S,界面效果就直接更新了。