React-Native Code-Push流程梳理

環(huán)境:

  • windows 10
  • RN:0.57.4
  • react-native-code-push 5.5.1
  • code-push-cli 2.1.9

后臺相關(guān)配置

一.安裝CodePush CLI

1.為了使用 Code Push發(fā)布熱更新,我們需要向微軟服務(wù)注冊我們的應(yīng)用。這部分工作
微軟提供了強大的命令行工具:CodePush CLI

2.安裝npm install -g code-push-cli

image

二.關(guān)聯(lián)賬號

1.輸入code-push register會打開瀏覽器到指定網(wǎng)頁,然后選擇賬號授權(quán)华嘹,授權(quán)后會得到token

image

2.復(fù)制token,輸入待等待輸入的命令行中
image

三.注冊應(yīng)用

1.code-push app add 你的App名稱 android react-native

image

2.每個 App 有不同的運行時環(huán)境雹姊,比如Production,Staging等豌汇,我們也可以配置自己的環(huán)境。查看 App 的不同環(huán)境和部署狀況:code-push deployment ls app名稱
image

App相關(guān)配置

1.項目中需要使用react-native-code-push包充岛,但要注意版本的兼容性問題保檐,不同的RN版本需要使用不同的版本,詳見官方說明:react-native-code-push

image

2.輸入npm info react-native-code-push查看react-native-code-push包版本信息,并根據(jù)對應(yīng)表崔梗,選擇需要安裝的版本

3.在RN項目中安裝react-native-code-push,npm install --save react-native-code-push

5.react-native link react-native-code-push會詢問What is your CodePush deployment key for Android (hit <ENTER> to ignore)

6.查詢StagingProductionKey值夜只,code-push deployment ls App名稱 -k

image

7.打開android/app/build.gradle,配置buildTypes

buildTypes {
 
    // 對應(yīng)Production環(huán)境
    release {
        ...
        buildConfigField "String", "CODEPUSH_KEY", '"從上述結(jié)果中復(fù)制的production值"'
        ...
    }
 
    // 對應(yīng)Staging環(huán)境
    releaseStaging {
        // 從 release 拷貝配置,只修改了 pushKey
        initWith release
        buildConfigField "String", "CODEPUSH_KEY", '"從上述結(jié)果中復(fù)制的stagingkey值"'
    }
 
    debug {
        buildConfigField "String", "CODEPUSH_KEY", '""'
    }
}

這里不同 buildType 的命名蒜魄,Staging 環(huán)境對應(yīng)的 buildType 就叫releaseStaging扔亥,要符合這樣的命名規(guī)范。
Debug 環(huán)境雖然用不到 CodePush谈为, 但是也要配置空的 Key 值旅挤,否則會報錯。

ReactNative項目中相關(guān)配置

React-Native-Code-Push 項目配置及更新策略

使用Code-Push Cli更新

1.一般來說伞鲫,我們發(fā)布應(yīng)用首先會在測試環(huán)境進行穩(wěn)定性測試粘茄,通過后再發(fā)布到生產(chǎn)環(huán)境中

code-push release-react MyApp-iOS ios
code-push release-react MyApp-Android android
  • 更多配置寫法
code-push release-react MyApp-iOS ios  --t 1.0.0 --dev false --d Production --des "1.優(yōu)化操作流程" --m true

其中參數(shù):
--t為二進制(.ipa與apk)安裝包的的版本,
--dev為是否啟用開發(fā)者模式(默認為false)秕脓;
--d是要發(fā)布更新的環(huán)境分Production與Staging(默認為Staging)柒瓣;
--des為更新說明,
--m 是強制更新吠架。
關(guān)于code-push release-react更多可選的參數(shù)嘹朗,可以在終端輸入code-push release-react進行查看。

坑記錄:--t后面的版本在ios和android存在差異
android
android在code-push發(fā)布更新的時候诵肛,版本獨立不影響的位數(shù)是兩位數(shù)。
舉例說明:
①默穴、versionName為2.1怔檩,和versionName為2.2的兩個app版本,
當(dāng)versionName=2.2的app發(fā)布codepush更新的時候蓄诽,受影響的只有2.2 和2.2.X薛训,X為正整數(shù)。
versionName=2.1是不會收到任何影響的仑氛,所以后續(xù)就需要創(chuàng)建兩條線路對不同的版本進行維護乙埃。
②闸英、由①可以知道,versionName=2.2.1和versionName=2.2.2兩個版本在獲取更新上介袜,獲取的是同個版本甫何。
當(dāng)versionName=2.2.2發(fā)布更新的時候,versionName=2.2.1的app同樣會受到影響接受更新遇伞。
ios
IOS在codepush發(fā)布更新時辙喂,版本獨立不影響的位數(shù)是三位數(shù)。
即iOS版本都是獨立不影響鸠珠,version=X.Y.Z巍耗,當(dāng)codepush發(fā)布更新時,只會影響與其X.Y.Z三位數(shù)完全相同的版本渐排。

  • 輸入后報錯


    image

進入RN項目中運行發(fā)布命令

image

此命令會將我們項目重新打包一次炬太,并上傳到code-push

注意事項

  • 配置code push兩個環(huán)境的key的時候,在MainApplication.java配置動態(tài)key
  • 打包命令gradlew assembleRelease gradlew assembleReleaseStaging gradlew assembleDebug
  • 修改后 更新命令

code-push release-react MyApp-iOS ios --t 1.0.0 --dev false --d Production --des "1.優(yōu)化操作流程" --m true

  • 關(guān)于更新的版本問題
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末驯耻,一起剝皮案震驚了整個濱河市亲族,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌吓歇,老刑警劉巖孽水,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異城看,居然都是意外死亡女气,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門测柠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來炼鞠,“玉大人,你說我怎么就攤上這事轰胁≮酥鳎” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵赃阀,是天一觀的道長霎肯。 經(jīng)常有香客問我,道長榛斯,這世上最難降的妖魔是什么观游? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮驮俗,結(jié)果婚禮上懂缕,老公的妹妹穿的比我還像新娘。我一直安慰自己王凑,他們只是感情好搪柑,可當(dāng)我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布聋丝。 她就那樣靜靜地躺著,像睡著了一般工碾。 火紅的嫁衣襯著肌膚如雪弱睦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天倚喂,我揣著相機與錄音每篷,去河邊找鬼。 笑死端圈,一個胖子當(dāng)著我的面吹牛焦读,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播舱权,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼矗晃,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了宴倍?” 一聲冷哼從身側(cè)響起张症,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鸵贬,沒想到半個月后俗他,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡阔逼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年兆衅,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嗜浮。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡羡亩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出危融,到底是詐尸還是另有隱情畏铆,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布吉殃,位于F島的核電站辞居,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蛋勺。R本人自食惡果不足惜速侈,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望迫卢。 院中可真熱鬧,春花似錦冶共、人聲如沸乾蛤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽家卖。三九已至眨层,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間上荡,已是汗流浹背趴樱。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留酪捡,地道東北人叁征。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像逛薇,于是被迫代替她去往敵國和親捺疼。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容