利用JSPatch平台实现线上bug修复

1.首页打开http://jspatch.com,注册一个账户然后登陆。

屏幕快照 2017-01-03 下午12.14.29.png

2.选择我的App,然后新增App,


利用JSPatch平台实现线上bug修复_第1张图片
屏幕快照 2017-01-03 下午12.13.42.png

3.添加App名称和AppID


利用JSPatch平台实现线上bug修复_第2张图片
屏幕快照 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 方法检查更新


利用JSPatch平台实现线上bug修复_第3张图片
屏幕快照 2017-01-03 下午12.23.14.png

由于项目是由Swift语言编写的,这里是Swift的接入方法,判断用户是否登陆,根据用户ID来开启开发预览,图中白色部分为appKey。

6.到JSPatch平台我的App中选择你需要修改的App,添加APP版本,


利用JSPatch平台实现线上bug修复_第4张图片
屏幕快照 2017-01-03 下午12.31.02.png

7.选择需要修改的版本,上传js文件,填写补丁描述


利用JSPatch平台实现线上bug修复_第5张图片
屏幕快照 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的代码


利用JSPatch平台实现线上bug修复_第6张图片
屏幕快照 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所遇到的一些问题,希望看客也能帮忙多补充些解决问题的方法,第一次写就写这样了。

你可能感兴趣的:(利用JSPatch平台实现线上bug修复)