react-native-code-push进阶及实践小结

之前一直是做原生ios开发,早就听说react-native可以实现热更新,当时就觉得相当高大上的感觉,如今自己也开始着手RN开发,也终于和这个仰慕已久的热更新打了照面。这里就自己在集成code-push中遇到的一些问题以及使用来做一个总结。

code-push的入门使用篇,这篇文章说得很详细,自己开始集成的时候也是主要参照这篇文章https://www.jianshu.com/p/6a5e00d22723
code-push的进阶主要是参考这篇文章https://www.jianshu.com/p/6e96c6038d80
当然也可以自己搭建服务器,可以参考这篇文章https://www.jianshu.com/p/da0c1940b8e0

以下便是自己在使用code-push中的一些总结及遇到的一些问题

1、deploymentKey是否需要写在CodePush.sync中?

答案是要看你是否需要动态部署;所谓的动态部署就是在我们真正的项目中,我们一般会分为开发版(Test),灰度版(Staging)和发布版(Production),在Test中我一般是用来跟踪code-push的执行,在Staging中其实是和Production是同样的代码,但是当要热修复线上版本时,先会发布热更新到Staging版,在Staging测过后再通过promoting推到Production中去,所以如果你仅仅是测试一下code-push的使用及效果,你可以直接这样写
屏幕快照 2018-09-30 10.32.18.png

其中isAndroid是定义的一个判断是否为android平台的常量,后面跟的字符串分别是android平台和ios平台的Production下deplomentKey;

而如果是正式上线的项目,就需要动态部署,如何动态部署在上面提到的code-push的进阶那篇文章中有涉及到。其实从code-push的源码中我们也可以大致知道deploymentKey参数是否需要传入
屏幕快照 2018-09-30 10.37.58.png

该参数是一个optional即可传可不传的参数,图中的注释也提到如果不传就会从ios中的info.plist中以及android的MainActivity.java中获得,如果你传了这个参数,就直接使用你传的key值,而不会使用原生中定义的key值了。

2、如何打Staging原生包?
在android中,上面的code-push进阶那篇文章提到的是使用./gradlew assembleStaging来打包Staging下的apk,但是我在实践中用这行命令不对,经过一番琢磨,发现要使用./gradlew assembleReleaseStaging才行。

在ios中,开始以为只需要将Edit Scheme -> run -> buildConfiguration 改为Staging,但是这样打出来的包始终检测不到Staging版的热更新,其实是应该选择Archive-> build Configuration 改为Staging才行
屏幕快照 2018-09-30 10.51.02.png

3、热更新是更新的那些内容?
热更新只是更新的js代码,并不能更新原生中的更改,所以如果你在原生中改了什么东西或者是更新了一些RN的三方库都需要重新打原生包发布到AppStore或者是android应用市场中去,而不能通过热更新来实现(ps* 本人就是更新了一个RN三方库,然后想通过热更新去让用户更新版本,结果就导致用户点击某个按钮或者是页面中去的时候程序直接崩溃,被项目经理一顿批斗,哈哈)

4、已经发布到Production的更新如果撤销?
如果发生了我上面提到的发布出去的更新有bug或者重大崩溃,不想让更多的用户检测到此更新怎么办?这时你可以马上登录code-push官网https://microsoft.github.io/code-push/ ,然后登录进入到App Center,选择你对应的App, 选择Distribute-> Code-Push, 选择Production,点击你想要撤销的版本,有个设置的按钮,将Enabled 关掉,这样用户就检测不到你此版本了。

屏幕快照 2018-09-30 11.03.21.png

参考网址
code-push的入门使用篇
https://www.jianshu.com/p/6a5e00d22723
react-native-code-push进阶篇
https://www.jianshu.com/p/6e96c6038d80
windows服务器搭建code-push-server
https://www.jianshu.com/p/da0c1940b8e0

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,752评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,100评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,244评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,099评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,210评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,307评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,346评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,133评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,546评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,849评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,019评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,702评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,331评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,030评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,260评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,871评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,898评论 2 351