使用react-native-code-push實(shí)現(xiàn)熱更新

DSC01402.JPG

——站在巨人的肩膀上

react-native-code-push熱更新

code-push賬號(hào)

  • 1.安裝Code-Push的命令行工具:
npm install -g code-push-cli
  • 2.注冊(cè)
code-push register
  • 3.若已經(jīng)注冊(cè)過(guò)尿赚,則直接登錄
code-push login

運(yùn)行之后,會(huì)在瀏覽器中打開(kāi)一個(gè)返回token的頁(yè)面
復(fù)制token值到控制臺(tái)登錄

  • 4.創(chuàng)建應(yīng)用
code-push app add <Your APP Name> <OS(ios/anroid/windows/macOS)> <platform(Objective-C / Swift/react-native/cordova/xamarin)>

如:

code-push app add MyApp ios react-native

也可以到code-push 后臺(tái)管理:https://appcenter.ms/apps/create進(jìn)行創(chuàng)建,
如下圖:

code-push001.png

code-push002.png

  • 5.查看所有應(yīng)用
code-push app ls //code-push app list
code-push003.png
  • 6.查看你的deployment key
code-push deployment ls Delivery  -k

如下圖:


code-push006.png
  • 7.在Xcode中填寫(xiě)你的key


    code-push005.png
  • 8.添加測(cè)試
code-push deployment add Delivery Test

使用react-native-code-push

  • 1.安裝
npm i react-native-code-push --save
react-native link react-native-code-push

注意:需要根據(jù)當(dāng)前項(xiàng)目的react-native版本,指定特定版本,不指定則默認(rèn)安裝最新版塘慕,
具體可參考官方說(shuō)明文檔react-native-code-push
運(yùn)行react-native link react-native-code-push 正常情況會(huì)引入相關(guān)的庫(kù),如下圖:

code-push004.png

若沒(méi)有配置成功,可手動(dòng)導(dǎo)入庫(kù)

  • 2.引入
import codePush from "react-native-code-push";
  • 3.組件中使用
App = codePush(App); // Wrap Your Component
codePush.checkForUpdate('Your Deployment Key').then((update)=>{
  // codePush.checkForUpdate().then((update)=>{
    console.log('update is ',update);
    if(!update){
       Alert.alert("提示","已是最新版本--",[
         {text:"Ok", onPress:()=>{
             console.log("點(diǎn)了OK");
           }}
       ]);
    }
    else{
      codePush.sync({
       deploymentKey: 'Your Deployment Key',
        updateDialog: {
          optionalIgnoreButtonLabel: '稍后',
          optionalInstallButtonLabel: '后臺(tái)更新',
          optionalUpdateMessage: '有新版本了贬养,是否更新?',
          title: '更新提示'
        },
        installMode: codePush.InstallMode.IMMEDIATE
      });
    }
  });

注意琴庵,若使用react-native-navigation組件需要在screen注冊(cè)時(shí)误算,
用codePush包裹你的screen,
不然就會(huì)出現(xiàn)很惡心迷殿、很惡心的問(wèn)題——APP更新成功儿礼,重啟之后又

回滾了,庆寺,蚊夫,

回滾了,懦尝,知纷,

回滾了,陵霉,琅轧,

真是心中一萬(wàn)只草泥馬奔騰而過(guò)啊~~~

具體如下:

Navigation.registerComponent('AboutUS', () => codePush(AboutUS));
  • 4.打包release
react-native bundle --entry-file index.ios.js --platform ios --dev false --bundle-output ios/ios.jsbundle
  • 5.發(fā)布到code-push Staging
code-push release-react MyAPP ios
  • 6.從Staging發(fā)布到正式環(huán)境
code-push promote Delivery Staging Production

或者直接發(fā)布到正式環(huán)境

code-push release-react MyAPP ios -d Production

注意IOS是根據(jù)info中的版本號(hào)來(lái)決定是否更新,版本獨(dú)立不影響的位數(shù)是三位
即iOS版本都是獨(dú)立不影響踊挠,version=X.Y.Z乍桂,當(dāng)codepush發(fā)布更新時(shí),只會(huì)影響與其X.Y.Z三位數(shù)完全相同的版本,其他版本不會(huì)受影響。

  • 7.查看歷史發(fā)布版本
code-push deployment history MyAPP Staging
code-push007.png

雖然花了一下午時(shí)間來(lái)實(shí)現(xiàn)模蜡,又花了一個(gè)多小時(shí)整理了下漠趁,整個(gè)過(guò)程,除了獨(dú)立版本三位數(shù)和版本回滾問(wèn)題忍疾,沒(méi)遇到比較大的坑闯传。

總之,還是那句話——好事多磨~~~

——喂卤妒,喂甥绿,兄弟,你別吃我泡面啊~

參考鏈接:
http://blog.csdn.net/zhuangchuming/article/details/63681774

http://blog.csdn.net/sinat_17775997/article/details/69364463

http://www.zhimengzhe.com/IOSkaifa/239118.html

http://bbs.reactnative.cn/topic/725/code-push-%E7%83%AD%E6%9B%B4%E6%96%B0%E4%BD%BF%E7%94%A8%E8%AF%A6%E7%BB%86%E8%AF%B4%E6%98%8E%E5%92%8C%E6%95%99%E7%A8%8B

https://github.com/Microsoft/react-native-code-push/issues/1088

https://github.com/Microsoft/react-native-code-push
http://microsoft.github.io/code-push/docs/cli.html#link-4

http://www.reibang.com/p/67de8aa052af

http://www.reibang.com/p/87ccfb795635

http://www.reibang.com/p/87ccfb795635

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末则披,一起剝皮案震驚了整個(gè)濱河市共缕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌士复,老刑警劉巖图谷,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異阱洪,居然都是意外死亡便贵,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)冗荸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)承璃,“玉大人,你說(shuō)我怎么就攤上這事蚌本】猓” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵程癌,是天一觀的道長(zhǎng)舷嗡。 經(jīng)常有香客問(wèn)我,道長(zhǎng)席楚,這世上最難降的妖魔是什么咬崔? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮烦秩,結(jié)果婚禮上垮斯,老公的妹妹穿的比我還像新娘。我一直安慰自己只祠,他們只是感情好兜蠕,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著抛寝,像睡著了一般熊杨。 火紅的嫁衣襯著肌膚如雪曙旭。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,036評(píng)論 1 285
  • 那天晶府,我揣著相機(jī)與錄音桂躏,去河邊找鬼。 笑死川陆,一個(gè)胖子當(dāng)著我的面吹牛剂习,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播较沪,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼鳞绕,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了尸曼?” 一聲冷哼從身側(cè)響起们何,我...
    開(kāi)封第一講書(shū)人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎控轿,沒(méi)想到半個(gè)月后冤竹,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡茬射,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年贴见,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片躲株。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖镣衡,靈堂內(nèi)的尸體忽然破棺而出霜定,到底是詐尸還是另有隱情,我是刑警寧澤廊鸥,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布望浩,位于F島的核電站,受9級(jí)特大地震影響惰说,放射性物質(zhì)發(fā)生泄漏磨德。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一吆视、第九天 我趴在偏房一處隱蔽的房頂上張望典挑。 院中可真熱鬧,春花似錦啦吧、人聲如沸您觉。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)琳水。三九已至肆糕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間在孝,已是汗流浹背诚啃。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留私沮,地道東北人始赎。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像顾彰,于是被迫代替她去往敵國(guó)和親极阅。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345