感謝上文作者的辛苦付出
本文簡歷在已經(jīng)成功運行 微軟 codepush熱更新,并且了解codepush 相關(guān)指令的基礎(chǔ)上。
簡介
code-push-server是一個開源項目,基于 nodejs + mysql 搭建自己的熱更新服務(wù)器
環(huán)境
macOS Sierra 10.12.1
nodejs v4.3.1
mysql 5.6
一、安裝mysql(其他環(huán)境自行對應(yīng)mysql安裝)
推薦安裝 mysql 5.6
一鍵安裝 毫無壓力
設(shè)置mysql密碼
進入mysql安裝目錄,命令分步執(zhí)行
cd /usr/local/mysql/bin
./mysql -u root -p //這一步是登錄root用戶 回車即可,5.6默人密碼為空
修改密碼
set password = password('輸入你的新密碼'); //引號不能省略
啟動mysql服務(wù)
打開 系統(tǒng)設(shè)置,在面板下會出現(xiàn)一個mysql的圖標,點擊進入并啟動即可。

二、本地安裝code-push-serve
作者發(fā)布了兩種安裝方式(npm安裝或源碼安裝),在此我推薦使用源碼安裝,因為后期我們要基于這個服務(wù)修改自己的網(wǎng)頁,源碼安裝方便些。
首先進入項目準備安裝的目錄執(zhí)行以下命令(如果沒有安裝git 則可以去git上download下來解壓)
git clone https://github.com/lisong/code-push-server.git
clone完畢后執(zhí)行
cd code-push-server && npm install
修改config/config.js 文件,在 db 對象中添加數(shù)據(jù)庫信息,參考如下配置,對應(yīng)自己的用戶名密碼,數(shù)據(jù)庫名稱
db: {
username: "root", //
password: "123456",
database: "codepush",
host: "127.0.0.1",
port: 3306,
dialect: "mysql"
}
初始化服務(wù),項目根目錄(code-push-server)下執(zhí)行命令
./bin/db init --dbhost localhost --dbuser root --dbpassword #初始化mysql數(shù)據(jù)庫
上述無報錯即可進行下一步
三、配置服務(wù)器-存儲在本地
修改config/config.js
將 common 對象中的 storageType改為 local
新建文件存儲目錄 data,storage,并修改配置文件
local: {
//此地址為以上新建的文件夾,自己對應(yīng)自己的路徑
storageDir: "/Users/luozhong/work/reactNative/server/storage",
//ip地址改成自己設(shè)備對應(yīng)的ip 這是下載地址
downloadUrl: "http://192.168.201.113:3000/download"
}
common: {
//此地址為以上新建的文件夾,自己對應(yīng)自己的路徑
dataDir: "/Users/luozhong/work/reactNative/server/data",
storageType: "local" //選擇存儲類型,目前支持local和qiniu配置
}
啟動服務(wù)
./bin/www //無報錯信息即為正常啟動,可以在瀏覽器中輸入 http://127.0.0.1:3000查看,默認用戶名密碼是 admin 123456
四、項目與服務(wù)建立鏈接
進入reactnative 項目根目錄執(zhí)行命令查看當前是否登錄,因為是新服務(wù),所以要先保證沒有別的賬號正在登錄
code-push whoami
如果報錯如下,表示沒有登錄
[Error] You are not currently logged in. Run the 'code-push login' command to authenticate with the CodePush server.
如果沒有報錯 并且顯示郵箱賬號,則表示已經(jīng)登錄賬戶,則我們要先注銷當前賬號
code-push logout
成功注銷后執(zhí)行登錄指令,瀏覽器會自動打開本地服務(wù)登錄頁面,命令行中會提示輸入key
code-push login http://localhost:3000
輸入賬號和密碼 admin 123456 登錄后點擊按鈕 獲取token 并復(fù)制token到命令行中,并回車確認
Successfully logged-in. //提示此表示登錄成功
至此我們已經(jīng)將codepush和我們自建的服務(wù)器關(guān)聯(lián)起來了.
五、注冊應(yīng)用
項目根目錄下執(zhí)行
code-push app add Trip-ios //項目名+iOS/android后綴
六、項目中修改對應(yīng)的key
查看key
code-push deployment ls Trip-ios
將Staging值修改到對應(yīng)的iOS或安卓項目中并重新打包安裝
七、發(fā)布更新
進入項目根目錄執(zhí)行以下命令,表示打包并發(fā)布,默認發(fā)布在開發(fā)環(huán)境
code-push release-react Trip-ios ios
成功后即可打開app驗證。