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 方案 - 简书 |
iOS热修复方案可行性研究以及Aspects修复方案的实践 - 简书 |
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的工具:
TTPatch Convertor
https://github.com/bang590/JSPatchConvertor
JSPath在2015年左右是很火的热更新库,但是后后来受苹果的限制,上架很难,如果你对js语言比较熟悉,建议使用ASPects,如果不熟悉js,建议使用OCRunner,它是比较接近OC的语法,也仅仅是热修复。不建议通过这种方式随意修改一般功能逻辑
二、Swift 热修复
- RockfordWei/CSwift
- Koolistov/HotfixKit
iOS热更新方案(过AppStore审核)相关推荐
- 沉浸式iOS热更新方案
沉浸式iOS热更新方案 iOS动态热更技术使得用户无需重新下载APP,就能修复线上BUG,提高用户体验,为APP快速迭代开发提供良好支持.此前业界的热更方案,多数是利用脚本语言修改Objective- ...
- iOS 热更新方案 - lance的专栏 - 博客频道 - CSDN.NET
iOS 热更新方案 - lance的专栏 - 博客频道 - CSDN.NET Weex
- LuaPatch——lua版的ios热更新方案
项目地址:https://github.com/gopep9/LuaPatch 项目简介:这个项目是在bang590大佬的JSPatch(https://github.com/bang590/JSPa ...
- 移动端热更新方案(iOS+Android)
PPT资源包含iOS+Android 各种方案分析:https://github.com/qiyer/Share/blob/master/%E7%83%AD%E6%9B%B4%E6%96%B0%E5% ...
- uni-app整包更新与热更新方案(安卓和IOS)
原文链接:uni-app整包更新与热更新方案(安卓和IOS) 效果预览 大致效果: 打开App,进入首页(首次),检测线上是否存在新版本,如果存在,弹窗提示用户是否进行版本更新.Android 有热更 ...
- React Native 热更新方案
转载: https://blog.csdn.net/xiangzhihong8/article/details/73201421 随着 React Native 的不断发展完善,越来越多的公司选择使用 ...
- Unity应用的iOS热更新
Unity应用的iOS热更新 作者:丁治宇 Unity TechnologiesChina Agenda ? 什么是热更新 ? 为何要热更新 ? 如何在iOS 上对Unity 应用进行热更新 ? 支持 ...
- 热更新方案-难不难在于你
App热更新方案 为什么要做热更新 当一个App发布之后,突然发现了一个严重bug需要进行紧急修复,这时候公司各方就会忙得焦头烂额:重新打包App.测试.向各个应用市场和渠道换包.提示用户升级.用户 ...
- React Native热更新方案
随着 React Native 的不断发展完善,越来越多的公司选择使用 React Native 替代 iOS/Android 进行部分业务线的开发,也有不少使用 Hybrid 技术的公司转向了 Re ...
最新文章
- AI促进药物发现:未来是多细胞研究
- Jedis使用总结【pipeline】【分布式的id生成器】【分布式锁【watch】【multi】】【redis分布式】
- 手机网络怎么共享给电脑_电脑没网络怎么回事?如何解决电脑没网络问题
- can差分线阻抗_CAN总线冷知识—边沿台阶是怎么来的?
- 相关系数excel_跟着思想学外汇-如何用Excel计算货币相关性
- 16位汇编 call调用函数 通过栈来传递参数
- CSS布局之脱离文档流详解——浮动、绝对定位脱离文档流的区别
- Java动态代理深入解析
- 计算机应用与软件是csci吗,计算机与信息技术学院
- ESXi日志分析网站第五版v5.4
- 数据文件坏删除数据文件
- Ignite与Spark内存计算平台对比分析
- iOS开发之创建颜色渐变视图View
- UNIX环境高级编程
- 笔记本样机的识别(加测硬盘通电时间软件HDTune)
- 采用Java+SSH+JSP技术架构开发实现在线会议租赁管理系统
- html点击热力图还原,网站页面点击热力图的SEO工具说明
- 2018年视频云服务市场格局进入整合阶段,阿里云视频云位居市场竞争力领导者的位置
- 如何用手机观看群晖ds218play上视频
- 微信开发:NAT穿透
热门文章
- 【华为机试真题 Python实现】求n阶方阵里所有数的和
- 【全网最详细yolov6】yoloV6调试记录(含训练自己的数据集及常见报错及解决方法)--持续更新ing
- html网上书店首页设计,毕业论文(设计)基于HTML5的网络书店系统 (40页)-原创力文档...
- JavaSE Set HashSet LinkedHashSet TreeSet 集合练习
- UPC 2020年夏混合个人训练第七十五场
- 搭建企业gitlab私有仓库全过程
- 再谈如何学习Linux,一线Linux专家学习经验谈
- ANOMALY: use of REX.w is meaningless (default operand size is 64)问题处理
- Race Condition漏洞
- component组件中的is属性居然有大用?