美文网首页
动态调试工具 InjectionIII 使用

动态调试工具 InjectionIII 使用

作者: 林希品 | 来源:发表于2023-01-13 18:22 被阅读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()
        }
    

    相关文章

      网友评论

          本文标题:动态调试工具 InjectionIII 使用

          本文链接:https://www.haomeiwen.com/subject/rsggcdtx.html