前言:這里發(fā)布應(yīng)用是配置熱更新成功的前提下~
注:我們所說的根目錄指的是package.json
所在的目錄~
先看一下流程圖:
流程:
- 在根目錄里
右鍵
-新建文件夾
-bundles
2.使用終端在根目錄下執(zhí)行下面命令,打包生成bundle文件
:
react-native bundle --platform ios --entry-file index.ios.js --bundle-output ./bundles/main.jsbundle --assets-dest ./bundles --dev false
當(dāng)看到以下就說明成功了:
Scanning 613 folders for symlinks in ../node_modules (14ms)
Scanning 613 folders for symlinks in ../node_modules (33ms)
Loading dependency graph, done.
bundle: start
bundle: finish
bundle: Writing bundle output to: ./bundles/index.ios.bundle
bundle: Done writing bundle output
文件夾里面會看到:
注意:首次執(zhí)行這個命令的時候需要將main.jsbundle和assets文件夾拖到XCode里面
assets在拖入的時候要選擇:Create folder references
,如圖:
上面操作之后整葡,jsCodeLocation = [CodePush bundleURL];
這個方法就會獲取到j(luò)sCodeLocation了。
3.發(fā)布更新
是在終端執(zhí)行:
(1)發(fā)布的是Production
需要指定--deploymentName
code-push release
AppName
./bundles/ 1.0.0 --deploymentName Production --description "1.第一版發(fā)布測試" --mandatory true
(2)發(fā)布的是Staging
的可以不指定--deploymentName
code-push release
AppName
./bundles/ 1.0.0 --description "1.第一版發(fā)布測試" --mandatory false
注:這里的1.0.0需要跟app版本對應(yīng)一致
發(fā)布成功之后會在終端看到箍铲,這里使用staging為例:
Upload progress:[==================================================] 100% 0.0s
Successfully released an update containing the "./bundles/" directory to the "Staging" deployment of the "AppName" app.
注:這里的AppName
指的是你在微軟那個網(wǎng)站里面創(chuàng)建的app名稱宾添,可以使用以下代碼在終端上查看:
code-push app ls
效果如下:
┌────────────┬─────────────────────┐
│ Name │ Deployments │
├────────────┼─────────────────────┤
│ AppName │ Production, Staging │
└────────────┴─────────────────────┘
這里的AppName就是我在微軟那個賬號里面創(chuàng)建的app
4.如果你想查看你發(fā)布的每個版本勺像,使用以下命令查看:
效果如下:code-push deployment history AppName Staging
5.當(dāng)你更改js文件里面的東西并且希望發(fā)布你的更新的時候整以,你需要更改完js之后重新到根目錄下滔驾,運(yùn)行第3步
里面的code-push release...
代碼谒麦,注意這時候應(yīng)該更改對應(yīng)的版本號
!
如果不更改版本號會報錯:
[Error] The uploaded package was not released because it is identical to the contents of the specified deployment's current release.
常用命令
- 安裝: npm install -g code-push-cli
- 注冊賬號: code-push register
- 登陸: code-push login
- 注銷: code-push logout
- 添加項(xiàng)目: code-push app add [app名稱]
- 刪除項(xiàng)目: code-push app remove [app名稱]
- 列出賬號下的所有項(xiàng)目: code-push app list
- 顯示登陸的token: code-push access-key ls
- 刪除某個access-key: code-push access-key rm <accessKey>
- 添加協(xié)作人員:code-push collaborator add <appName> next@126.com
- 部署一個環(huán)境: code-push deployment add <appName> <deploymentName>
- 刪除部署: code-push deployment rm <appName>
- 列出應(yīng)用的部署: code-push deployment ls <appName>
- 查詢部署環(huán)境的key: code-push deployment ls <appName> -k
- 查看部署的歷史版本信息: code-push deployment history <appName> <deploymentNmae>
- 重命名一個部署: code-push deployment rename <appName> <currentDeploymentName> <newDeploymentName>
參考文章
codepush中文版
react-native-code-push
react native codepush熱更新解決成功更新