iOS 原生代码的编译调试,都是通过一遍又一遍地编译重启 App 来进行的。所以,项目代码量越大,编译时间就越长。虽然我们可以通过将部分代码先编译成二进制集成到工程里,来避免每次都全量编译来加快编译速度,但即使这样,每次编译都还是需要重启 App,需要再走一遍调试流程。

对于开发者来说,提高编译调试的速度就是提高生产效率。试想一下,如果上线前一天突然发现了一个严重的 bug,每次编译调试都要耗费几十分钟,结果这一天的黄金时间,一晃就过去了。到最后,可能就是上线时间被延误。这个责任可不轻啊。

那么问题来了,原生代码怎样才能够实现动态极速调试,以此来大幅提高编译调试速度呢?在回答这个问题之前,我们先看看有哪些工具是这么玩儿的。了解了它们的玩法,我们也就自然清楚这个问题的答案了。

Swift Playground

说到 iOS 代码动态极速调试的工具,你首先能想到的估计就是 Playground。它是 Xcode 里集成的一个能够快速、实时调试程序的工具,可以实现所见即所得的效果,

Injection for Xcode

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

作者已经开源了这个工具,地址是https://github.com/johnno1962/InjectionIII 。使用方式就是 clone 下代码,构建 InjectionPluginLite/InjectionPlugin.xcodeproj ;删除方式是,在终端里运行下面这行代码:

rm -rf ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins/InjectionPlugin.xcplugin

App 如何快速重启(编译)相关推荐

  1. IAP与APP(一):两个固件使用Keil5默认设置编译后,利用J-Flash偏移APP的地址然后合并IAP烧写,运行时出现在跳转APP时无限重启的现象

    最近做了个在线升级(并没有使用系统) 芯片:STM32F103C8T6 环境:Keil 5.STM32CubeMX 5.2.1 跳转和写FLASH在网上一搜其实不少,主要注意要重定向中断向量表和跳转前 ...

  2. 超详细!apk安装包快速反编译,多种反编译及失败的解决方案(包含classes.dex的反编译,新增加快速反编译)

    如要转载,请贴出原地址:https://blog.csdn.net/Nobody_else_/article/details/83996441 众所周知,我们开发所用的手机App安装包都是apk文件, ...

  3. Android之解决APP奔溃重启导致Fragment白屏问题

    1.问题 问题APP奔溃重启导致依附的Fragment白屏问题 2.分析 app奔溃重启Activity肯定更新了,但是依附在Activity里面的fragment有缓存,用的是以前的activity ...

  4. SpringBoot 热部署神器快速重启的秘密!

    今天咱们来聊聊这个热部署神器 spring-boot-devtools 的运行原理,看看它是怎么用这个 ClassLoader  来实现快速重启,帮我们节省时间的!

  5. Windows驱动开发学习记录-驱动中快速重启关闭计算机之一

    引言 关于快速重启和关闭计算机,网上有不少软件在Ring3下调用ZwShutdownSystem (NtShutdownSystem)来实现,虽然速度很快,但还至少经历一些流程,比如向设备驱动发送停机 ...

  6. 化妆品APP开发快速制作

    化妆品APP开发,化妆品APP开发快速制作.伴随着移动互联快速发展趋势,许多实体领域都是在根据互联网进行转型发展,特别是在近些年女性市场的需求深受创业投资者们关心,因而许多借此机会衍化的消费行业也是备 ...

  7. link2sd在部分Android 4.2.2系统下挂载告警必须快速重启才能挂载的问题

    现象: link2sd使用时会挂载告警,重新创建挂载脚本后,快速重启能够解决.但是正常重启又不行了 问题根源: link2sd的创建脚本必须将内容写入到/etc/install-recovery.sh ...

  8. ES运维--快速重启

    启动初始化时间长 修改es配置,重启集群成本巨大.ES集群已有25T数据,27个节点,24个数据节点(热盘12和hot节点,慢盘12个stale节点,3个mater节点),数据节点的启动,加入集群后需 ...

  9. 服务器维护系列——快速重启VNC

    博客新址: http://blog.xuezhisd.top 邮箱:xuezhisd@126.com 环境 操作系统:Ubuntu 14.04 Server 问题描述 如何关闭VNC?如何启动VNC? ...

最新文章

  1. Push to origin/master was rejected解决方法
  2. (转载)关于IAP与APP互相跳转的实现
  3. 语文课外运用计算机探究,[小学语文]计算机在小学写字教学中的运用之我见
  4. SpringCloud(第 054 篇)简单 Quartz-Cluster 微服务,采用注解配置 Quartz 分布式集群... 1
  5. 一次性输血器行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  6. 计算机操作系统在线阅读,计算机操作系统3-1.ppt
  7. 热烈庆祝博客排名进入前一万(8448)
  8. loadruner知识点小结
  9. 如何细分目标客户群体,让邮件效果更好?
  10. 采样频率和带宽的关系_采样频率、采样点数、频率分辨率
  11. 【51CTO学院】双11抽奖规则
  12. 小白也能看懂的华为防火墙配置教程
  13. 摄影测量:ERDAS自动、手动和导入特征点对(超详细)
  14. 百度小程序第三方平台开发,一整套流程
  15. android ftp 链接不上去,安卓手机无法连接电脑上的ftp(vsftpd)服务器
  16. Ubuntu 21.04 虚拟机设置共享文件夹
  17. 揭秘阿里巴巴神奇的人物抠图算法内幕
  18. jQuery Danmmu Player 弹幕视频
  19. 二维火门店网盘v5.7.0绿色官方版
  20. ON1 Effects图形工具领域,LUT和预设的色彩工作站

热门文章

  1. java 0x80000000_如何在java中将0x80000000等同于-2147483648?
  2. Day009---java中的一维数组和二维数组
  3. (素材源码)猫猫学IOS(十五)UI之曾经大热的打砖块小游戏
  4. Couldn't find executable named joy_node below /opt/ros/kinetic/share/joy解决方法
  5. EL表达式和JSTL表达式及案例
  6. sort arithmatic
  7. 使用百度统计功能快速统计网站的访问情况
  8. 东方博宜oj答案1151-1200
  9. 建议收藏,轻松搞懂区块链
  10. 屏蔽机房设计方案知识