iOS热更新方案(过AppStore审核)
一、查阅了几种热更新的方案, JSPatch 、 Aspects 、 Stringer 、 TTPatch 、Mango、OCRunner。下面用一个表格对这几种方案分别做个对比:
方案 | 优点 | 缺点 | 链接地址 | 使用说明 |
JSPatch |
1,学习成本低 2,接入成本低 3,热更能力高,还可以用它创建新的模块 |
1,下发的JS代码容易被窜改,存在安全漏洞 2,已经被Apple拒绝,上架很难过审 3,不支持跨平台,仅支持OC |
https://github.com/bang590/JSPatchhttp://www.jspatch.com | |
ASPects |
1,利用消息转发机制forwardInvocation进行转发 2,接入成本低 3,热更能力中等,一般的bug可修复 |
1,下发的JS代码容易被窜改,存在安全漏洞 2,直接上架 3,不支持跨平台,仅支持OC |
https://github.com/steipete/AspectsLBYFix-依赖Aspects的轻量级低风险的 iOS Hotfix 方案 - 简书 |
|
Stringer | 1,速度快又好 |
1,公开文档少,资料少,demo不完备 |
https://github.com/eleme/Stinger | |
TTPatch |
1,有完善的公开文档 2,性能可以 |
1,学习成本高 2,执行效率一般 |
https://github.com/yangyangFeng/TTPatch | |
MangoFix |
1,无感知修复,不用下载远程补丁文件,只需要配置更新文件的远程地址将更新文件保存在本地即可 2,接近OC的语法 |
1,目前还不支持Swift 2,DSL(领域专用语言) |
https://github.com/YPLiang19/Mango/blob/master/README-CN.md | iOS开发 MangoFix结合码云储存补丁文件实现热更新 - 简书 |
OCRunner |
1,二进制补丁,安全性高 2,是MangoFix的进化版 3,速度比MangoFix快 4,方法比MangoFix多 |
1,Swift中的类要声明为@objc才能用 | https://github.com/SilverFruity/OCRunner | 基于OCRunner二进制热更新实践 - 简书 |
2、iOS中OC转Javascript的工具:
https://github.com/bang590/JSPatchConvertor
JSPath在2015年左右是很火的热更新库,但是后后来受苹果的限制,上架很难,如果你对js语言比较熟悉,建议使用ASPects,如果不熟悉js,建议使用OCRunner,它是比较接近OC的语法,也仅仅是热修复。不建议通过这种方式随意修改一般功能逻辑
二、Swift 热修复
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
二维码