β

iOS-lua打补丁

ksnowlv 330 阅读
 

一.目的

1.更改线上App小的功能点。

2.修复线上App的Bug。

3.对于iOS来讲,避免了漫长的AppStore审核。

二.方案。

image

三.接口

loadPatch

参数:
实体数据:

四.iOS具体方案

1.采用lua与objective-c交互的方式,通过lua脚本替换objective-c函数的实现。
2.通过Wax加载后改变了既有Objective-C实现方法的指向函数,从而改变了程序的行为。
3.示例

patch.lua 代码如下:

require "YKHomeViewController"

YKHomeViewController.lua 代码如下:

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.简单脚本把文件压缩
#!/bin/bash

zip -r  lua.zip  lua

!!!

 
作者:ksnowlv
原文地址:iOS-lua打补丁, 感谢原作者分享。

发表评论