热修复

iOS中动态更新补丁策略JSPatch运用基础一

我与影子孤独终老i 提交于 2020-12-23 20:32:52
iOS中动态更新补丁策略JSPatch运用基础 JSPatch是GitHub上一个开源的框架,其可以通过Objective-C的run-time机制动态的使用JavaScript调用与替换项目中的Objective-C属性与方法。其框架小巧,代码简洁,并且通过系统的JavaScriptCore框架与Objective-C进行交互,这使其在安全性和审核风险上都有很强的优势。Git源码地址: https://github.com/bang590/JSPatch 。 一、从一个官方的小demo看起 通过cocoapods将JSPath集成进一个Xcode工程中,在AppDelegate类的中编写如下代码: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //开始初始化引擎 [JPEngine startEngine]; //读取js文件 NSString *sourcePath = [[NSBundle mainBundle] pathForResource:@"demo" ofType:@"js"]; NSString *script = [NSString stringWithContentsOfFile

android 热修复 HotFix 混淆apk生成patch包方案

▼魔方 西西 提交于 2020-03-20 11:51:40
3 月,跳不动了?>>> android 热修复框架目前了解的有qq空间分包方案的HotFix 和Nuwa,还有阿里开源的AndFix和Dexposed. https://github.com/dodola/HotFix https://github.com/jasonross/Nuwa https://github.com/alibaba/AndFix https://github.com/alibaba/dexposed 关于项目的原理可以看下两位大神的博客学习下: http://blog.csdn.net/lmj623565791/article/details/49883661 http://blog.csdn.net/qxs965266509/article/details/50390325 由于AndFix只能更改类中的方法实现,而Dexposed目前还不支持Art(5.0在测试中), 所以研究了一下HotFix及Nuwa的实现( dalvik )。 HotFix及Nuwa的实现原理基本一致,都是在Application中将patch包写到第一个dex文件中然后加载修改后的类。由于 Nuwa的patch包按照文档说明的流程本人未实现,所以着重研究了下HotFix的实现。 HotFix 文档中只是给出了一个解决混淆的方案,未注明流程

JSPatch库, 一个Apple官方支持的实现在线更新iOS应用的库

久未见 提交于 2020-02-29 15:42:05
简介 项目主页: https://github.com/bang590/JSPatch 示例下载: https://github.com/ios122/ios122 JSPatch 可以让你用 JavaScript 书写原生 iOS APP。只需在项目引入极小的引擎,就可以使用 JavaScript 调用任何 Objective-C 的原生接口,获得脚本语言的优势:为项目动态添加模块,或替换项目原生代码动态修复 bug。 优势 在项目中引入JSPatch,就可以在发现bug时下发JS脚本替换原生方法,可以做到无需更新整个APP即时修复bug! JSPatch用iOS内置的 JavaScriptCore.framework作为引擎;JSPatch也符合苹果的规则。苹果不允许动态下发可执行代码,但通过苹果 JavaScriptCore.framework 或 WebKit 执行的代码除外,JS 正是通过 JavaScriptCore.framework 执行的。 JSPatch非常小巧 实例预览 @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {