动态调试工具 InjectionIII 使用

2023-01-13  本文已影响0人  林希品
image.gif

1.App Store里搜索injectioniii

image

2.添加引用:

Swift

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        #if DEBUG
        // 把InjectionIII.app换成InjectionX.app
        Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/iOSInjection.bundle")?.load()
        #endif
        return true
    }

Objective-C

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    #if DEBUG
    // 用于在Debug模式下使用InjectionIII进行调试,只在模拟器和Debug模式且电脑安装了 InjectionIII 时生效
    [[NSBundle bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/iOSInjection.bundle"] load];
    #endif

    return YES;
}

3.添加Other Linker Flags:-Xlinker-interposable

image.png

4.添加工程的监听

选择Open Project,选择你的项目


image
image.png

切换项目需要重做这一步,或者Open Recent切换

5.添加成功与否查看

Commond + R重新编译项目,查看控制台:


image.png

6.使用

说明:
方式一:每次保存,Commond + S,都会触发injected这个方法,在这个方法里面去刷新界面、动态改变界面
方式二:界面跳转,界面重新绘制,或者重新初始化的情况下可以不使用injected方法,比方说可以push或者present到个新的界面,在新的界面上改了后,回退再进来就能直接看到改变。

injected使用示例如下:
Objective-C

- (void)injected {
    NSLog(@"reloadUI");
    [self viewDidLoad];
    [self viewWillAppear:YES];
    [self selfDefineMethod];
    self.view.backgroundColor = [UIColor whiteColor];
}

Swift

    @objc func injected() {
        viewDidLoad()
    }
上一篇下一篇

猜你喜欢

热点阅读