常用命令
以下命令基于code-push環(huán)境已經(jīng)安裝好
并且如下命令基本能滿足常見熱更新操作
- 登錄
微軟
的服務(wù)器(默認(rèn))
code-push login
- 登錄自己部署(公司)的服務(wù)器
code-push login 自己的域名地址
說明:
1, 執(zhí)行登錄命令會(huì)打開瀏覽器傍睹,并且在瀏覽器屏幕正中間會(huì)顯示token
富俄,將此token復(fù)制粘貼到終端,enter绕辖,就能登錄成功。
2擂红, 使用另外一臺(tái)電腦生成的token仪际,也可以登錄(注意token會(huì)過期,如果過期登出再登錄就行)∈骷睿或者 默認(rèn)瀏覽器如果沒有登錄code-push肯适,需要先登錄從而獲取token。
3成榜, 另外部署code-push到自己公司服務(wù)器框舔,在iOS項(xiàng)目info.plist
中需要添加一個(gè)key——CodePushServerURL
<key>CodePushServerURL</key>
<string>http://codepush.xxxx.cn:xxxx/</string>
查看當(dāng)前code-push賬號(hào)下面的app
code-push app ls(或list)
命令來查看deployment key
code-push deployment ls <APP_NAME> -k
登出code-push
code-push logout
下面命令終端需切換到RN項(xiàng)目根目錄
下
打包main.jsbundle
react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ./bundle/main.jsbundle --assets-dest ./ios/bundle
-
發(fā)布rn的bundle到微軟服務(wù)器
方案1(推薦):
code-push release-react YourProjectName ios --t 1.0.0 --dev false --d Staging --des "xxxxx"
此處版本號(hào)要注意,詳細(xì)見下文常見問題方案2:
code-push release-react YourProjectName ios
也就是code-push release-react <AppName> <PlatName>
這條命令默認(rèn)發(fā)布到Staging赎婚,版本號(hào)1.0
將測試版本Staging提升為Production
code-push promote YourProjectName Staging Production
-
查看發(fā)布的歷史記錄
- Staging
code-push deployment history YourProjectName Staging
- Production
code-push deployment history YourProjectName Production
- Staging
想了解更多的命令詳情刘绣,可以去官方文檔查閱
常見問題
坑1(對(duì)于iOS):
app無法加載出本地圖片資源!!
- 解決:
就是把你的結(jié)果(main.jsbundle
和assets
)拖入工程時(shí)惑淳,對(duì)于assets文件夾额港,你要選擇create folder reference
,而不是create folder group
.
正確的結(jié)果是assets文件夾是一個(gè)藍(lán)色的文件夾
歧焦,整個(gè)一起作為bundle resources
坑2(雙端):
熱更新不生效 (版本號(hào)設(shè)置問題引起)
- 解決(iOS端):
// 設(shè)定每次熱更新的版本號(hào)
- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge {
[CodePush overrideAppVersion:@"1.0.0"];
return [CodePush bundleURL];
}
// RN項(xiàng)目提交熱更新版本
code-push release-react YourProjectName ios --t 1.0.0 --dev false --d Staging --des "xxxxx"
說明:
應(yīng)該設(shè)定每次熱更新的版本號(hào)(比如1.0.0
)移斩,RN項(xiàng)目提交熱更新版本的時(shí)候版本號(hào)要與此相同(比如1.0.0)
然后服務(wù)器會(huì)根據(jù)設(shè)定的版本號(hào)去找改版本號(hào)最新的提交(而不是code-push默認(rèn)的V1、V2那種版本號(hào))绢馍,如果找得到就能熱更向瓷。否則熱更無效。
參考資料:
1舰涌,簡潔直接的code-push使用教程(快速上手建議看這個(gè)):http://www.reibang.com/p/67de8aa052af
2猖任,深入分析的教程:http://www.reibang.com/p/9e3b4a133bcc
3,官方文檔(對(duì)照上面的博客看):http://microsoft.github.io/code-push/docs/react-native.html
4瓷耙,踩坑參考:https://www.cnblogs.com/rayshen/p/5502538.html