1.首页打开http://jspatch.com,注册一个账户然后登陆。
![](https://img.haomeiwen.com/i901152/f36b54cec5915a51.png)
2.选择我的App,然后新增App,
![](https://img.haomeiwen.com/i901152/ef3645fa67be28d1.png)
3.添加App名称和AppID
![](https://img.haomeiwen.com/i901152/637c8cc76dd269a2.png)
得到左边的appKey,
4.点击SDK下载,把下载好的SDK拖入项目中,添加依赖框架:TARGETS -> Build Phases -> Link Binary With Libraries -> + 添加 libz.dylib 和 JavaScriptCore.framework
5.在 AppDelegate.m 里载入文件,并调用 +startWithAppKey: 方法,参数为第一步获得的 AppKey。接着调用 +sync 方法检查更新
![](https://img.haomeiwen.com/i901152/4e49f890f54e654b.png)
由于项目是由Swift语言编写的,这里是Swift的接入方法,判断用户是否登陆,根据用户ID来开启开发预览,图中白色部分为appKey。
6.到JSPatch平台我的App中选择你需要修改的App,添加APP版本,
![](https://img.haomeiwen.com/i901152/e7c88d568ff99e23.png)
7.选择需要修改的版本,上传js文件,填写补丁描述
![](https://img.haomeiwen.com/i901152/40ab3397b5f287cf.png)
我这里选择是开发预览选项,补丁只下发到项目里开启了开发预览模式的用户。测试没有问题后变成全量下发。
至此利用JSPatch平台实现线上bug修复已基本完成,更详细的接入文档在这里http://jspatch.com/Docs/SDK。
关于main.js的编写以及JSPatch的更多用法可以参考https://github.com/bang590/JSPatch/wiki。
由于我的项目是用Swift编写的,中间遇到过不少的问题,下面贴出部分main.js的代码
![](https://img.haomeiwen.com/i901152/7dd524542bf5dc1c.png)
1.Swift项目里面,控制器名称前面一定要加前缀。
2.只有继承自 NSObject 的 Swift 类,其继承自父类的方法和属性可以在 JS 调用,其他自定义方法和属性同样需要加 dynamic 关键字才行。
3.方法的参数/属性类型为 Swift 特有(如 Character / Tuple),则此方法和属性无法通过 JS 调用。
4.方法名或者属性名带有“”的,一定要用“_”双下划线,比如:JPObject.__privateMethod()。
5.js里面获取数组里面的值,最好分步实现,比如:self.selectDataSource().toJS()[indexPath.row()]这样可能会获取不到数组里面的值。
以上是我用JSPatch所遇到的一些问题,希望看客也能帮忙多补充些解决问题的方法,第一次写简书就写这样了。
网友评论