react-native-code-push 熱更新的使用發(fā)布- iOS和Android

code push 運作模式說明:

RN的熱更有ios 的熱更和android的熱更,兩者互不相干日裙,iOS 有Staging 和 Release(Production) 兩種 deploymentKey 惰蜜,Android同理也有兩種key,這個key是你將app添加到服務器的時候自動下發(fā)給你的(下面會說)抛猖,這是用來識別你在服務器中app key的唯一值格侯。
即:


圖片.png

在RN端推的都是JS和靜態(tài)文件(例如圖片、icon)到服務器樟结,這個服務器可以是自建服務器也可以是微軟的服務器养交,因公司使用的是自建服務器,所以以自建服務器的來說瓢宦。

利用code push 的指令將需要更新的js和靜態(tài)文件推送到服務器。
在app打開的時候灰羽,就會詢問這個服務是否有更新驮履,有的話就可以選擇把更新過的js和靜態(tài)文件下載下來,即完成更新玫镐,如果是有添加了第三方庫或者是有修改到原生Java或ios的原生代碼的時候,就需要重新打包更新app怠噪,要上架的話就要重新審核恐似。

放上參考鏈接:
http://www.reibang.com/p/75eabb0d098a
http://www.reibang.com/p/be4040d5aff7

步驟:

1、安裝code-push-cli

npm install -g code-push-cli

code-push -v 查看驗證

2傍念、注冊(登錄)賬號

code-push login
code-push register
圖片.png

3矫夷、往服務器里添加新的android app 和 iOS app

code-push app add <appName> android react-native 
code-push app add <appName> ios react-native 
執(zhí)行這兩個指令后會返回上述的兩個系統(tǒng)平臺的Production葛闷、Staging 的 deploymentKey
//例:
code-push app add phonePlayer-android android react-native
code-push app add phonePlayer-ios ios react-native

4、執(zhí)行完后可以查看服務器里面是否能看到剛才已添加的app

code push ls (或list)


圖片.png

5双藕、app安裝react-native-native-code-push第三方庫

根據(jù)官網(wǎng)的步驟安裝了react-native-code-push 后配置給android和iOS配置一下 測試版的 熱更和 發(fā)布正式版的熱更 deploymentKey 淑趾,到時候別人安裝的是Staging 版的,用戶就只能下載更新你推到Staging版的js和靜態(tài)文件忧陪,安裝release(即Production)版的扣泊,用戶就只能更新發(fā)布版的。

android:
(1)嘶摊、在android/app/build.gradle



android {
    ...
    buildTypes {
        debug {
            ...
            // Note: CodePush updates should not be tested in Debug mode as they are overriden by the RN packager. However, because CodePush checks for updates in all modes, we must supply a key.
            resValue "string", "CodePushDeploymentKey", '""'
            ...
        }

        releaseStaging {
            ...
            resValue "string", "CodePushDeploymentKey", '"插入Staging的DeploymentKey"'

            // Note: It is a good idea to provide matchingFallbacks for the new buildType you create to prevent build issues
            // Add the following line if not already there
            matchingFallbacks = ['release']
            ...
        }

        release {
            ...
            resValue "string", "CodePushDeploymentKey", '"插入Production的DeploymentKey"'
            ...
        }
    }
    ...
}

(2)延蟹、在/android/app/src/main/res/values/strings.xml文件中添加服務器的地址

<resources>
    ...
    <string name="CodePushServerURL">https://xxx.xxx.com/</string>
    ...
</resources>

iOS:

(1)iOS的根據(jù)官網(wǎng)的multi-deployment-testing-ios.md配置一下,添加Staging環(huán)境叶堆,到時候打包的時候可以選擇Staging或release打包等孵。
(2)配置完后在info.plist里面添加服務器

    <key>CodePushDeploymentKey</key>
    <string>$(CODEPUSH_KEY)</string>
    <key>CodePushServerURL</key>
    <string>https://xxx.xxx.com/</string>

6、將打包更改過的文件推送到服務器

code-push release-react phonePlayer-android android -t 1.0.31 -m -d Staging --des "更改測試"
code-push release-react phonePlayer-ios ios -t 1.2.1 -m -d Staging --des "更改測試"

注:加 -m 是強制更新蹂空,不加則是可稍后更新俯萌。 Staging 是測試版,發(fā)布版的是Production上枕。

6咐熙、在項目里面用

你傳入的是哪個的deploymentKey,就會詢問的是哪個是否有更新


圖片.png

那么此時你就可以使用

code-push deployment history appName Staging

來查看你發(fā)布的歷史
更多指令如下:

    code-push register    注冊賬號
    code-push login    進行身份驗證以開始管理您的應用
    code-push logout    注銷當前會話
    code-push access-key     查看和管理與您的帳戶關聯(lián)的訪問密鑰
    code-push access-key ls    列出登陸的token
    code-push access-key rm <accessKye> 刪除某個 access-key

    // 管理App相關指令
    code-push app                        查看和管理您的CodePush應用
    code-push app add phonePlayer-android android react-native                    在賬號里面添加一個新的app
    code-push app remove 或者 rm           在賬號里移除一個app
    code-push app rename                 重命名一個存在app
    code-push app list 或則 ls             列出賬號下面的所有app
    code-push app transfer               把app的所有權轉移到另外一個賬號

    // 查看deployment key
    code-push deployment add appName deploymentName  部署一個環(huán)境
    code-push deployment rm appName          刪除部署
    code-push deployment                     查看和管理您的應用程序部署
    code-push deployment ls appName          列出應用的部署
    code-push deployment ls appName -k       查看查詢部署環(huán)境的key
    code-push deployment history appName Staging

    // 其他
    code-push collaborator               查看和管理應用協(xié)作者
    code-push debug                      查看正在運行的應用程序的CodePush調試日志
    code-push link                       將其他身份驗證提供程序(例如GitHub)鏈接到現(xiàn)有的Mobile Center帳戶
    code-push patch                      更新現(xiàn)有版本的元數(shù)據(jù)
    code-push promote                    將最新版本從一種應用程序部署升級到另一種
    code-push release                    發(fā)布更新到應用程序部署
    code-push release-cordova            將Cordova更新發(fā)布到應用程序部署
    code-push release-react              將React Native更新發(fā)布到應用程序部署
    code-push rollback appName Production|Staging -t Label          回滾最新版本的應用程序部署(Label你可以使用查看發(fā)布歷史里面辨萍,v1棋恼、v2、v3等锈玉,即你要回滾的版本)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末爪飘,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子拉背,更是在濱河造成了極大的恐慌师崎,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件椅棺,死亡現(xiàn)場離奇詭異犁罩,居然都是意外死亡,警方通過查閱死者的電腦和手機两疚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門床估,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人诱渤,你說我怎么就攤上這事丐巫。” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵递胧,是天一觀的道長碑韵。 經(jīng)常有香客問我,道長谓着,這世上最難降的妖魔是什么泼诱? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮赊锚,結果婚禮上治筒,老公的妹妹穿的比我還像新娘。我一直安慰自己舷蒲,他們只是感情好耸袜,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著牲平,像睡著了一般堤框。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上纵柿,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天蜈抓,我揣著相機與錄音,去河邊找鬼昂儒。 笑死沟使,一個胖子當著我的面吹牛,可吹牛的內容都是我干的渊跋。 我是一名探鬼主播腊嗡,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼拾酝!你這毒婦竟也來了燕少?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤蒿囤,失蹤者是張志新(化名)和其女友劉穎客们,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蟋软,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡镶摘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了岳守。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡碌冶,死狀恐怖湿痢,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤譬重,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布拒逮,位于F島的核電站,受9級特大地震影響臀规,放射性物質發(fā)生泄漏滩援。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一塔嬉、第九天 我趴在偏房一處隱蔽的房頂上張望玩徊。 院中可真熱鬧,春花似錦谨究、人聲如沸恩袱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽畔塔。三九已至,卻和暖如春鸯屿,著一層夾襖步出監(jiān)牢的瞬間澈吨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工寄摆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留谅辣,地道東北人。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓冰肴,卻偏偏與公主長得像屈藐,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子熙尉,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內容