美文网首页
利用JSPatch平台实现线上bug修复

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

作者: 米橙 | 来源:发表于2017-01-03 13:20 被阅读0次

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

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

    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所遇到的一些问题,希望看客也能帮忙多补充些解决问题的方法,第一次写简书就写这样了。

    相关文章

      网友评论

          本文标题:利用JSPatch平台实现线上bug修复

          本文链接:https://www.haomeiwen.com/subject/rmzgvttx.html