美文网首页IOS知识积累iOS开发
iOS-UI调试利器-Injection

iOS-UI调试利器-Injection

作者: 笑破天 | 来源:发表于2020-10-15 17:52 被阅读0次

John Holdsworth 开发了一个叫作 Injection 的工具可以动态地将 Swift 或Objective-C 的代码在已运行的程序中执行,以加快调试速度,同时保证程序不用重启。

使用方法:

1、App Store下载Injectionlll。

2、项目工程配置。
在我们自己的工程 AppDelegate.swift 文件的 didFinishLaunchingWithOptions 方法中进行注入

Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/iOSInjection.bundle")?.load()

在ViewController里面写入injected方法,swift要写@objc。

@objc func injected() {
        viewDidLoad()
        self.view.backgroundColor = UIColor.orange
    }

写入你想要动态更改的代码

override func viewDidLoad() {
        super.viewDidLoad()
        self.view.backgroundColor = UIColor.lightGray
        
        self.view.addSubview(button)
        // 更改约束的时候没有清空之前的约束,会存在两个约束,造成约束冲突,所以先清空。若是不清空的话需要重新进入页面才能生效。
        button.snp.removeConstraints()
        button.snp.makeConstraints { (make) in
            make.centerX.equalToSuperview()
            make.top.equalTo(100)
            make.height.equalTo(30)
            make.width.equalTo(100)
        }
        button.setTitle("sdddd", for: .normal)
    }

3、开启监控。
打开Injectionlll,在菜单栏点击Injectionlll,下拉选中open Project,打开iOS工程目录。

遇到问题:

1、真机,cmd+s无效?
只支持模拟器调试。

2、swift不生效?
在swift中方法injected前要加@objc。

3、frame布局生效,snapkit约束不生效?
更改约束的时候没有清空之前的约束,会存在两个约束,造成约束冲突,所以先清空。若是不清空的话需要重新进入页面才能生效。

原理介绍:

启动了一个mac server监控工程目录,cmd+s的时候,获取injected方法内的代码,生成新的dylib文件,替换旧的动态链接库,实现即时刷新UI。

demo地址

相关文章

  • iOS-UI调试利器-Injection

    John Holdsworth 开发了一个叫作 Injection 的工具可以动态地将 Swift 或Object...

  • malgee-工具&插件

    史蒂芬周的博客-mac免费破解工具 百度云盘加速下载插件 人人都是产品经理 iOS-UI分析利器--Reveal安...

  • iOS Injection极速编译

    Injection可以做到不用重新编译代码就可以看到结果。对于调试细节能节省很多时间。 Injection使用步骤...

  • React Native Debugger

    React Native Debugger 是RN项目的调试利器,集成了多个调试工具。 (1) 官方提供的调试工具...

  • 使用GDB调试C++程序

    GDB调试利器 GDB, the GNU Project debugger, allows you to see ...

  • iOS 如何拥有热重载极速调试?

    ⚠️ 只适用于模拟器上调试,真机无效 iOS拥有热重载的原理: Injection for XCodeGitHub...

  • InjectionIII 快速调试

    介绍: Injection 可以动态地将 Swift 或 OC 的代码在已运行的程序中执行,以便加快调试速度,提升...

  • Xode界面调试软件Injection III

    优化Xcode开发时的速度,可以在不用编译的情况下看到代码的效果。先提供一下几个地址:Injection链接Mac...

  • Reveal调试UI利器

    Reveal Reveal是分析、调试iOS应用UI的利器。 Reveal能够在运行时调试和修改iOS应用程序。它...

  • 利用 whistle 调试微信分享

    1、whistle 作为新潮流的前端调试利器,现在才接触到有点相见恨晚,它能帮我们抓包调试,包括真机调试、代理、H...

网友评论

    本文标题:iOS-UI调试利器-Injection

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