Skip to content

Commit b744130

Browse files
authored
1 parent fbe0fa5 commit b744130

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

Reports/2019/#51-2019.01.09.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@
2222
4. Linker(链接):将一切依赖的外部库加入到二进制包中
2323
5. Loader(装载):变成一个可执行程序,添加程序执行的入口,以便操作系统能够直接跑起来
2424

25+
### 🐢 [OCEval-动态执行ObjectiveC的热修复方案](https://juejin.im/post/5c24a8396fb9a049d5198dfc)
26+
27+
苹果在18年多次对基于 runtime & JavaScriptCore 的热修复方案进行全面的打压,导致 JSPatch 以及其混淆 or 变种,变得难以过审。但是本文作者依然在热修复的探索上寻找并实现了一条新的方案 OCEval 。 OCEval 的本质是作者自己实现了一个OC语法的简单解释器,包含了基础的词法分析与语法分析,从而能够在运行期将 OC 代码生成抽象语法树 AST 然后进行执行。这样就可以将OC这种原本必须经过编译再运行的语言,扩展为 js 那样的解释执行,从而能够做到动态下发代码并且运行。同时再通过 runtime 进行 aspect 那样的 hook 操作,实现热修复线上代码。整个代码都已经开源,对编译原理有兴趣的同学值得深入好好学习一下。
28+
2529
## 设计
2630

2731
### 🐎 [[] 色彩无障碍性产品设计指南](https://juejin.im/post/5c2c233d6fb9a049bd4266b7)

0 commit comments

Comments
 (0)