iOS微更新,热更新,局部更新,bug修复
2016-01-13 16:56
435 查看
iOS微更新,热更新,局部更新,bug修复
iOS不用重新打包,利用JSPatch来修复BUG
假如我们辛辛苦苦加班加夜赶出来的版本上线后发现有个小bug,会导致系统崩溃。我们能做的就是赶紧修复bug然后提交从新AppStore审核,这样也需要大概一个星期时间,一个小小的bug需要付出如此大的代价。
使用JSPatch可以解决这样的问题,它可以根据OC运行时机制,在有bug的地方用JS脚本去替换原生方法,无需更新APP即时修复bug。
OC语言是一门动态性语言,OC上创建类,调用方法,点击、手势的响应事件都是通过OC的Runtime(运行时)来实现的。我们可以通过相同的方法名和类名,在运行时来截取OC的响应事件或创建类(偷梁换柱)。
这就是我们可以用JS文件来修复BUG的原理。
我们先看一下代码:
cocopods添加方法(详情可以看Github):
如图:
项目-->TARGETS-->General-->Linked Frameworks and Libraries 点击“+”号搜索js
这样JS就可以在运行时截取与demo.js里面相同的方法名或类名的方法
运行一下:
6.我们编写demo.js文件
如图:
当然这只是个测试证明JS可以在运行时截取OC的响应事件,具体要是创建控制器等一些大型的页面可以参考
github:https://github.com/bang590/JSPatch
我这里就不再多说
重点:这个夜市我刚刚研究的只适用于动态类型的OC语言。至于Swift,因为swift是静态语言,我也写了一下发现截取不了事件。至于有没有其他方法,正在研究中。如有进展后期会更新!
注:转载请注明出处,http://blog.csdn.net/lg_sun/article/details/50511103
尊重原创!
附:代码地址:
OC:https://github.com/SLGgit/LG_JSTest
swift没有执行成功,本菜鸟也在研究,欢迎各位大神Fork,提供意见。
Swift:https://github.com/SLGgit/LG_swiftJSTest
iOS不用重新打包,利用JSPatch来修复BUG
假如我们辛辛苦苦加班加夜赶出来的版本上线后发现有个小bug,会导致系统崩溃。我们能做的就是赶紧修复bug然后提交从新AppStore审核,这样也需要大概一个星期时间,一个小小的bug需要付出如此大的代价。
使用JSPatch可以解决这样的问题,它可以根据OC运行时机制,在有bug的地方用JS脚本去替换原生方法,无需更新APP即时修复bug。
OC语言是一门动态性语言,OC上创建类,调用方法,点击、手势的响应事件都是通过OC的Runtime(运行时)来实现的。我们可以通过相同的方法名和类名,在运行时来截取OC的响应事件或创建类(偷梁换柱)。
这就是我们可以用JS文件来修复BUG的原理。
我们先看一下代码:
1.添加JSPatch
cocopods添加JSpatch三方库 github地址: https://github.com/bang590/JSPatchcocopods添加方法(详情可以看Github):
platform :ios, '6.0' pod 'JSPatch'
如图:
2.添加JS引擎
在iOS里面用JS需要一个JS引擎,在coco里面已经存在一个JS引擎,看图:项目-->TARGETS-->General-->Linked Frameworks and Libraries 点击“+”号搜索js
3.添加js文件
编写一个JS文件(文本编辑后缀改为js就行):4.在APPDelegate里面添加JSPatch
这样JS就可以在运行时截取与demo.js里面相同的方法名或类名的方法
5.我们写一个测试
建立一个button并写好点击事件:运行一下:
6.我们编写demo.js文件
如图:
当然这只是个测试证明JS可以在运行时截取OC的响应事件,具体要是创建控制器等一些大型的页面可以参考
github:https://github.com/bang590/JSPatch
我这里就不再多说
重点:这个夜市我刚刚研究的只适用于动态类型的OC语言。至于Swift,因为swift是静态语言,我也写了一下发现截取不了事件。至于有没有其他方法,正在研究中。如有进展后期会更新!
注:转载请注明出处,http://blog.csdn.net/lg_sun/article/details/50511103
尊重原创!
附:代码地址:
OC:https://github.com/SLGgit/LG_JSTest
swift没有执行成功,本菜鸟也在研究,欢迎各位大神Fork,提供意见。
Swift:https://github.com/SLGgit/LG_swiftJSTest
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 讲解iOS开发中基本的定位功能实现
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- 浅析iOS应用开发中线程间的通信与线程安全问题
- 检测iOS设备是否越狱的方法
- .net平台推送ios消息的实现方法
- Node.js巧妙实现Web应用代码热更新
- Ajax局部更新导致JS事件重复触发问题的解决方法
- 探讨Android与iOS,我们将何去何从?
- 详解Android中实现热更新的原理
- Android、iOS和Windows Phone中的推送技术详解
- IOS 改变键盘颜色代码
- 举例详解iOS开发过程中的沙盒机制与文件