一.目的
1.更改线上App小的功能点。
2.修复线上App的Bug。
3.对于iOS来讲,避免了漫长的AppStore审核。
二.方案。
三.接口
loadPatch
参数:
- 平台:OSType(int)
- 0表示无意义
- 1表示iOS
- 2表示Android
- App版本号:appVersion(String)
实体数据:
补丁包Id:patchId(若无补丁包,空串;如果非空串,有补丁包。)
客户端如果发现本次patchId与上次保存补丁id不一致,即下载该补丁包。如果一致,无需重复下载,直接使用上次补丁包即可。
- 补丁包地址:patchUrl(String)
四.iOS具体方案
1.采用lua与objective-c交互的方式,通过lua脚本替换objective-c函数的实现。
2.通过Wax加载后改变了既有Objective-C实现方法的指向函数,从而改变了程序的行为。
3.示例
patch.lua代码如下:
1
|
|
YKHomeViewController.lua代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
4.简单脚本把文件压缩
1 2 3 |
|
!!!
- 1.注意不要用zip工具压缩,不然,解压时会失败。
- 2.64位的适配参考https://github.com/maxfong/WaxPatch_X64