先夸夸JSPatch,平台 SDK 1.7.2 以上版本可以通过苹果审核,可以正常使用。Github 开源版本暂不可用。
暂时1.8.0 是需要付费使用的.还需要联系获得,跟阿里的热更新差不多. 阿里的热更新需要月活20万才可以接入,才给SDK包.如果需要自己做热更新的, 还是企业账号的可以使用1.7.2的包自己做更新,1.8.0还会自己弹框应该是交钱才能去掉测试弹框.
一、JSPatch
https://github.com/bang590/JSPatch
热更新时,从服务器拉去js脚本。理论上可以修改和新建所有的模块,但是不建议这样做。建议用来做紧急的小需求和 修复严重的线上bug。官网说: JSPatch 平台 SDK 1.7.2 以上版本可以通过苹果审核,可以正常使用。Github 开源版本暂不可用
二、lua脚本
比如:wax。热更新时,从服务器拉去lua脚本,游戏开发经常用到。
忽略
三、Weex
https://github.com/apache/incubator-weex/
https://github.com/apache/incubator-weex/
跨平台,一套代码,iOS、Android都可以运行。用前端语法实现原生效果。比React Native更好用。weex基于vue.js,ReactNative使用React。ReactNative安装配置麻烦。 weex安装cli之后就可以使用。react模板JSX有一定的学习成本,vue和常用的web开发类似,模板是普通的html,数据绑定用mustache风格,样式直接使用css。
如果你都是这样的应用就不操心热更新了
四、React Native
不像Weex能一套代码多端运行,需要自己分别做修改。React Native 可以动态添加业务模块,但无法做到修改原生OC代码。JSPatch、lua 配合React Native可以让一个原生APP时刻处于可扩展可修改的状态。
如果你都是这样的应用就不操心热更新了
五、Hybrid
像PhoneGap之类的框架, 基本概念和web差不多, 通过更新js/html来实现动态化,没有原生的效果流畅。
如果你都是这样的应用就不操心热更新了
六、动态库
可以做demo用,真实使用的时候会被苹果禁止。因为 打包发到AppStore的ipa安装包 里的每个动态库 都有唯一的编码,iOS系统会进行验证,所以动态通过网络获取 新的动态库 也用不了。
可忽略
七、rollout.io
Rollout紧急修复线上bug。后端有相关的管理页面。因为是国外的网站,然后呢,要FQ才能使用。
不建议
八、DynamicCocoa
https://github.com/DynamicCocoa/DynamicCocoa
滴滴iOS的一个框架,还没开源已经有1K+star和许多issue了,与JSPatch比更加智能化,用OC在XCode中写完代码,用工具可以自动生成可以更新的js文件。
不知道滴滴为什么不开源应该是因为开源会可能有封的风险吧.
综上如果你是企业账号那么方案就是JSPatch 1.7.2版本加自己管理补丁,因为他这个平台超过1万会收费.但是人家js转OC的代码转换器都有了开发成本很低的.
如果你想上APPStore可以使用一些像滴滴的那个思维模式开展的方式,目的就是开发出一种方式让自己的项目能识别服务器下发的OC代码规则可以自己定. 利用苹果的Aspects 或者饿了么的Stinger来进行开发.
aspects 或者 stinger都可以以切面的方式去hook 到 OC的方法
饿了么的demo里面调试的时间显示饿了么的stinger 性能更屌.
这里还有只用OC的语言让后台下发的.只要你自己能有自己的规则就是可以的,但是开发的成本要高一点.
如果你是超级签或者是企业账号发布或者是现在什么TF签都可以用JSpatch去搞
腾讯的bugly和阿里的热更新都能搞.阿里的是日活接近一万才给你接,
腾讯什么的都是收费的阿里的是说可以上架.但是群里好像没几个ios的在咨询.
这个后面可以自己会出一套自己的逻辑写的简单版热更新.
http://blog.csdn.net/hanhailong18/article/details/64443350
关于类方法调用 (JSPatch)
//www.greatytc.com/p/50fe432eb56b?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
仅做笔记 ~
热更新原原理篇:
//www.greatytc.com/p/ab0919e37f5d
热更新实用篇
//www.greatytc.com/p/076c2af1f6e3