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