iOS App 通过注入动态库的方式实现极速编译调试

Injection

支持OC、Swift以及Swift和OC混编项目的UI热重载工具,采取在模拟器(真机不支持)注入方式实现UI热重载,修改完UI直接com+s,不用重新编译运行就能看到UI效果

安装

1、github下载最新release版本,或者AppStore下载安装即可,推荐github下载安装,github更新比AppStore更新快。如果你的项目使用混编OC时,强烈建议使用github的releases版本

2、安装后,打开InjectionIII,选择Open Project,选择你的项目目录

image

3、选择的项目会在Open Recent中展示,同时保持File Watcher的选项勾选。

项目配置

bundleWithPath 是InjectionIII APP所在的路径,找到InjectionIII 右键 '显示简介'->位置->右键->拷贝为路径名称

image

1、在方法里配置注入

  • (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

if DEBUG

//iOS
[[NSBundle bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/iOSInjection.bundle"] load];
//同时还支持tvOS和MacOS,配置时只需要在/Applications/InjectionIII.app/Contents/Resources/目录下找到对应的bundle文件,替换路径即可
#endif
2、此时启动项目,在控制台可以看到,表示注入成功了
如果有多个项目都在使用Injection,需要查看Injection链接路径是否正确,如果不正确,打开Injection菜单-OPen Recent-选择你需要注入的项目即可。
InjectionIII connected /Users/looha/Desktop/Project_lh/BVGenius/BVGenius.xcworkspace
Watching files under /Users/looha/Desktop/Project_lh/BVGenius
3、注入页面文件配置
在需要热重载的页面VC中,实现injected方法,把操作UI方法添加到injected中即可
比如UI操作都在vc的viewDidLoad中,那么就在injected添加viewDidLoad方法即可
如果项目都想使用,直接添加到baseVC即可
在baseVC里添加方法 injected ,方法里是要监听的方法
- (void)injected {
[self viewDidLoad];}
4、在UI阶段,修改外UI,直接com+s就能看到效果,部分页面可能需要重新进入该页面才能看到效果。

更多详细配置可参见

你可能感兴趣的:(iOS App 通过注入动态库的方式实现极速编译调试)