一.目的
1.更改线上App小的功能
2.修复线上App的Bug
3.对于iOS来讲,避免了漫长的AppStore审核
二.技术方案
三.相关接口
loadPatch
参数:
- 平台:OSType(int)
- App版本号:appVersion(String)
实体数据:
四.iOS具体方案
1.采用lua与objective-c交互的方式,通过lua脚本替换objective-c函数的实现。
2.通过Wax加载后改变了既有Objective-C实现方法的指向函数,从而改变了程序的行为。
3.示例
patch.lua代码如下:
1
2
|
require "YKHomeViewController"
|
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
|
waxClass{"YKHomeViewController", UIViewController}
function loadCache(self)
local localCache = YKLocalCache:sharedLocalCache()
local userModel = YKUserManager:sharedYKUserManager():currentUser()
local cacheData
if userModel and userModel:userId() then
cacheData = localCache:cacheFromLocalFile_withUserId("KYKLocalCacheHomeLogin",userModel:userId())
else
cacheData = localCache:cacheFromLocalFile("KYKLocalCacheHomeUnLogin")
end
if cacheData and cacheData:length() > 0 then
local jsonDic = NSJSONSerialization:JSONObjectWithData_options_error(cacheData,0,nil);
if jsonDic then
self:handleHomeParser_withResponseData(jsonDic,cacheData)
end
else
self:setupRefreshTableViewDataArrayData()
end
end
|
4.简单脚本把文件压缩
1
2
3
4
|
#!/bin/bash
zip -r lua.zip lua
|
5.注意事项!!!
文章作者
梵梵爸
上次更新
2015-08-10
许可协议
原创文章,如需转载请注明文章作者和出处。谢谢