专栏首页joealzhouiOS开发提升效率工具之InjectionIII

iOS开发提升效率工具之InjectionIII

iOS开发提升效率工具之InjectionIII

前言

随着项目越来越大,每次build的时间也是在变长。当只是修改一个UI上的小问题时,比如字体、颜色、frame就要重新build再次等待一段时间,这种开发效率是大大打了折扣的,并且开发体验也不爽。使用此工具后无需重新build,修改完成后command + S,然后退出修改页面再进入就可以看到变化了。

injection-demo.gif

只支持模拟器!只支持模拟器!只支持模拟器!

前不久在App Store看到了InjectionIII更新了,有空就总结分享一下。

一、下载

在App Store搜索InjectionIII并下载。

屏幕快照 2019-08-14 17.00.45.png

二、打开工程

下载完成后打开此软件,Mac状态栏点击InjectionIII->Open Project选择你的工程文件夹然后确定Select Project Directory。操作完成后再用Xcode打开此工程。

屏幕快照 2019-08-14 17.08.44.png

屏幕快照 2019-08-14 17.08.25.png

三、配置

Xcode打开工程后,在AppDelegatedidFinishLaunchingWithOptions方法内注入InjectionIII

Xcode版本大于等于10.2如下注入:

#if DEBUG
Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/iOSInjection.bundle")?.load()
//for tvOS:
Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/tvOSInjection.bundle")?.load()
//Or for macOS:
Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/macOSInjection.bundle")?.load()
#endif

Xcode版本10.1的如下注入:

#if DEBUG
Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/iOSInjection10.bundle")?.load()
//for tvOS:
Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/tvOSInjection10.bundle")?.load()
//Or for macOS:
Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/macOSInjection10.bundle")?.load()
#endif

注意文件路径不能有错,如果你有什么骚操作下载的软件被你移动到其它文件夹,就要用你的路径。

四、看Xcode日志

配置完成后,run你的项目,注意查看Xcode日志。有如下输出则成功注入了,可以愉快的编码了~

? Injection connected, watching /Users/zhouqiang/Desktop/Project/AnXinCollege/**

比如我修改了SettingViewController文件,并command + S保存后日志输出如下,则代表成功了。

? *** Compiling /Users/zhouqiang/Desktop/Project/AnXinCollege/AnXinCollege/Modules/Mine/Setting/SettingViewController.swift ***
? Loading .dylib ...
objc[10121]: Class _TtC12AnXinCollege21SettingViewController is implemented in both /Users/zhouqiang/Library/Developer/CoreSimulator/Devices/A12F878C-ACF9-4D62-A82E-4D260EE7E08A/data/Containers/Bundle/Application/ABBB9C03-F6EE-4354-816E-9537D729FC8F/AnXinCollege.app/AnXinCollege (0x10709ed28) and /Users/zhouqiang/Library/Containers/com.johnholdsworth.InjectionIII/Data/eval101.dylib (0x1266d5da0). One of the two will be used. Which one is undefined.
? Loaded .dylib - Ignore any duplicate class warning ^
? Injected 'SettingViewController'

Tips

发现没有效果的同学可以参考下?

  • command + S后先退出当前界面在进入
  • 修改cell时可能要滑动一下才看到效果

此工具作者John HoldsworthGithub地址

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 初识LLVM&Clang-开发Xcode插件

    Xcode现在使用的编译器就是LLVM。LLVM比以前使用的GCC编译器速度快好几倍。并且LLVM可以编译 Kotlin,Ruby,Python,Haskell...

    用户6094182
  • Mac上自己推送iOS通知到设备

    打开“终端(terminal)”,然后(注意,sudo需要的密码就是系统的root帐号密码)运行“sudo apachectl start”

    用户6094182
  • Xcode11打包失敗IPA processing failed

    是因为项目中使用的SDK支持i386,x86_86這個架构,可能是iOS13不支持模拟器架构了,所以必须强制去除。

    用户6094182
  • Python系列之零——从零说起!!!

    2017年可谓是人工智能元年,要问哪个行业最火,詹小白不敢确定,但要问哪个编程语言最热门,好吧,詹小白还是不敢说太满。但是!至少从舆论Pytho...

    小小詹同学
  • 修改 wordpress 后台登陆地址和登陆用户名

    魏艾斯博客www.vpsss.net
  • Android模拟器之Genymotion

    之前已经介绍了android原生自带的模拟器,它的运行速度确实很慢,不管是对开发还是测试同学来说,速度慢肯定会影响工作的效率,今天介绍android...

    无涯WuYa
  • 9.5 共用体类型

    2、结构体变量所占内存长度是各成员占的内存长度之和。每个成员分别占有其自己的内存单元。而共用体变量所占的内存长度等于最长的成员的长度。

    闫小林
  • ExtJs三(实现验证码图片控制器)

    在Extjs二(实现登录)http://www.cnblogs.com/aehyok/archive/2013/04/18/3028739.html,今天紧跟上...

    aehyok
  • 反编译一款小说阅读软件 android逆向(三)

    用户1127566
  • ExtJs三(实现验证码图片控制器)

    在Extjs二(实现登录)http://www.cnblogs.com/aehyok/archive/2013/04/18/3028739.html,今天紧跟上...

    aehyok

扫码关注云+社区

领取腾讯云代金券