随着移动需求的增加、移动项目的拓展,如果移动端应用出现Bug不能及时得到修复,影响的不仅仅是用户体验,还会造成业务上的损失,因此,建立一套完整的热修复平台迫在眉睫。基于此,本文作者所在的搜狗商业应用研发团队构建了一套移动热修复服务中间件平台,本文从系统架构到主要流程对解决方案进行了详细的呈现,无论是iOS、Android、RN、Flutter都可以借助这一思想来开发自己的热修复平台。
写在前面
移动应用开发与服务端开发有很大不同,服务端应用如果出现问题,可以通过发布新版本修复,或立即回滚到上一个版本,用户能够立刻感知到这一变化;而移动端应用则不同,即使立刻发布新版本修复了问题,也无法保证所有人都能更新到这个版本,如果用户不升级移动端应用,问题依然得不到修复。
此外,众所周知,iOS发布App需要经过AppStore的审核,审核的周期几天甚至一周,虽然近来时间有所缩短,但如果想要快速发布新版本依然避免不了审核;而Android发布App虽然没有审核的过程,但国内多样化的应用市场,依然影响着新版本的发布。
因此,针对移动端应用的实时更新是非常必要的需求。随着移动需求的增加、移动项目的扩展,建立一套完整的热修复平台日益迫切。
热修复概念
2015年以来,移动开发领域对热修复技术的讨论和分享越来越多,同时也陆续出现了一些不同的解决方案。业内普遍共识是把不用重新发布新版本,不更新App自身安装包,在用户无感知的情况下,就可以对应用当前版本实现bug修复、部分功能修改的技术解决方案称为热修复HotFix。