CodePush?簡介
CodePush 是微軟提供的一套用于熱更新 React Native 和 Cordova 應用的服務。
CodePush 是提供給 React Native 和 Cordova 開發者直接部署移動應用更新給用戶設備的云服務。CodePush 作為一個中央倉庫,開發者可以推送更新 (JS, HTML, CSS and images),應用可以從客戶端 SDK 里面查詢更新。CodePush 可以讓應用有更多的可確定性,也可以讓你直接接觸用戶群。在修復一些小問題和添加新特性的時候,不需要經過二進制打包,可以直接推送代碼進行實時更新。
CodePush 可以進行實時的推送代碼更新:
直接對用戶部署代碼更新
管理 Alpha,Beta 和生產環境應用
支持 React Native 和 Cordova
支持JavaScript 文件與圖片資源的更新
熱更新的比較簡單,說簡單點就是一個.jsbundle文件/Assets素材文件版本管理工具。有些小伙伴擔心使用微軟服務器進行更新覺得會不安全,但是codePush管理的是.jsbundle所以大家大可以直接使用。圖中是打包上傳過程(code-push release-react Demo-iOS ios --t 1.6.0 --d Staging --des “第5次更新測試” -m false)。然而 CodePush 服務器是在國外的,國內使用的話速度并不理想,所以自建CodePush 服務是最理想的。網上已有大量的本地服務器搭建指南。
服務器搭建?
鏈接上遠端服務器之后進入需要的文件夾
ssh root@ 100.100.100.100
輸入密碼
cd /xx/xx/xx/
1, 服務端需要使用?code-push-server?和MySQL?所以需要先將這兩個安裝好。
(1)下載code-push-server代碼
git clone https://github.com/lisong/code-push-server.git? ? ??
cd code-push-server && npm install
(2)MySQL
官網下載后直接雙擊安裝,下載地址;
打開“系統設置”,看到最新安裝的MySQL,進入并啟動服務。
(3)配置code-push-server
創建表結構
./bin/db init --dbhost '對應數據庫IP' --dbuser root --dbpassword 數據庫密碼
eg.. ./bin/db init --dbhost 127.0.0.1 --dbuser root --dbpassword root
若表結構創建不成功,請檢查MySql是否正常運行。若正常運行也可以自己創建表結構(表結構SQL)
然后繼續配置config.js
cd config/config.js
客戶端搭建:
1. 客戶端需要安裝 code-push-cli?參考文檔
npm install -g code-push-cli
2. 登錄code-push-server,使code push和自建的服務器關聯
執行命令查看當前是否登錄,因為是新服務,所以要先保證沒有別的賬號正在登錄
code-push whoami
如果報錯如下,表示沒有登錄
[Error] You are not currently loggedin. Run the'code-push login'command to authenticatewiththe CodePush server.
如果沒有報錯 并且顯示郵箱賬號,則表示已經登錄賬戶,則我們要先注銷當前賬號
code-push logout
code-push login http://服務器地址:3000
//提示此表示登錄成功 Successfully logged-in……?
創建應用:
Usage: code-push app add <appName> <os> <platform>
選項:
? -v, --version? 顯示版本號? [布爾]
示例:
? app add MyApp ios react-native? ? ? Adds app "MyApp", indicating that it's an iOS React Native app
? app add MyApp windows react-native? Adds app "MyApp", indicating that it's a Windows React Native app
? app add MyApp android cordova? ? ? Adds app "MyApp", indicating that it's an Android Cordova app
e.g..
code-push app add ReactNativeCodePushDemo-ios ios react-native
可以使用
?code-push deployment ls XunHuiFinance-ios -k
進行查看
可以通過命令行查看,更多相關命令,請查閱官方文檔
躺坑:
以上如果都配置好的話如果發現打包上傳提示
[Error] connect ECONNREFUSED 127.0.0.1:3000
此時需要對本地的code-push配置文件/user/xxx/.code-push.config 進行關聯
重新登錄code-push服務器輸入密碼拿到token 輸入token 就可以了。此時阿里云上的服務和我本地的RN項目才算關聯起來了
其他步驟請參考已下資料: