CodePush的用法

1,安裝code-push命令行工具

npm install -g code-push-cli

2,注冊code-push賬號。

code-push register

3,添加app

code-push app add? FreshToHome_Customer_iOS? ?ios? react-native

code-push app add? FreshToHome_Customer_Android? ?android? react-native

此處記下app測試和正式發(fā)布的key。

4,項(xiàng)目根目錄下安裝code-push的依賴

yarn add react-native-code-push

5,將依賴link到原生項(xiàng)目里面,此時(shí)需要填寫iOS和Android應(yīng)用的deploymentKey,這兩個(gè)deploymentKey分別寫入到ios目錄下的info.plist文件(CodePushDeploymentKey)和android目錄下的strings.xml,這里填寫staging下的key。

6,在JS項(xiàng)目里面添加更新檢測的代碼,推薦使用sync接口。

7,發(fā)布更新

這個(gè)命令自動(dòng)打包和上傳包到codePush的server,上傳到Staging

code-push release-react FreshToHome_Customer_iOS ios

code-push release-react <AppName> <platform>

[--bundleName]

[--deploymentName]

[--description]

[--development]

[--disabled]

[--entryFile]

[--mandatory]

[--sourcemapOutput]

[--targetBinaryVersion]

[--rollout]

里面有個(gè)--deployName這里可以設(shè)置deploy的環(huán)境,Staging? or? ?Production.

8,版本轉(zhuǎn)移

此外,我們還可以選擇Staging里面的穩(wěn)定的版本,直接轉(zhuǎn)移到Production下,進(jìn)行發(fā)布。將Staging下的最后一個(gè)更新版本復(fù)制轉(zhuǎn)移到Production下,成為一個(gè)版本。

code-push promote FreshToHome_Customer_iOS Staging Production

9,查看部署狀態(tài):

查看app在Staging和Production下的部署狀態(tài):

code-push deployment ls FreshToHome_Customer_iOS

查看app在Staging狀態(tài)下的部署歷史

code-push deployment history FreshToHome_Customer_iOS Staging

10,版本回退。

code-push rollback? <AppName>? <deploymentName>

版本回退的本質(zhì)是產(chǎn)生一個(gè)新版本。

11,修改更新。

code-push patch <AppName>? <deploymentName>

[--label]

[--description ]

[--disabled]

[--mandatory]

[--rollout ]

需要注意:

正常更新需要做到兩點(diǎn):

1,banary的版本,也就是app原生的版本沒有變。

2,js的內(nèi)容要發(fā)生變化,如果沒有變化,將會發(fā)布更新失敗,將--noDuplicateReleaseError設(shè)置為true,js代碼沒有發(fā)生變化,不會報(bào)錯(cuò),依然發(fā)布更新會失敗。

參考文章:

http://www.itdecent.cn/p/f8689ccf0007

https://github.com/Microsoft/code-push/blob/master/cli/README-cn.md#%E5%8F%91%E5%B8%83%E6%9B%B4%E6%96%B0-react-native

https://segmentfault.com/a/1190000008591456#articleHeader9


code-Push功能列表:

安裝:npm install -g code-push-cli

注冊賬號:code-push register

登陸:code-push login

注銷:code-push logout

添加項(xiàng)目:? code-push app add [app名稱]? ios

刪除項(xiàng)目:? code-push app remove [app名稱]

列出賬號下的所有項(xiàng)目:? code-push app list

顯示登陸的token:? code-push access-key ls

刪除某個(gè)access-key: code-push access-key rm?[accessKey]

添加協(xié)作人員:code-push collaborator add next@126.com

添加一個(gè)部署:code-push deployment add [AppName]? [DeployName]

刪除部署:code-push deployment remove?[AppName]? [DeployName]

列出應(yīng)用的部署:code-push deployment ls?[AppName]

查詢部署環(huán)境的key:code-push deployment ls? [AppName]? -k

查看部署的歷史版本信息:code-push deployment history? [AppName]? [DeployName]

重命名一個(gè)部署:code-push deployment rename [AppName] [CurrentDeployName]? [NewDeployName]

項(xiàng)目中使用需要注意的事項(xiàng):

1,每一個(gè)js發(fā)布,都有對應(yīng)的發(fā)布號,如v20,以及對應(yīng)的binary版本號,如1.3.0,1.3(需要注意,1.3和.1.3.0會被認(rèn)為是同一個(gè)binary版本)

2,使用relese-react命令時(shí),如果不指定binary的版本號,對Android的js包來說,會從gradle的配置中去讀binary的版本號,iOS會從對應(yīng)的info.plist中,查到version的版本號。

3,指定js包的disabled為true時(shí),已經(jīng)安裝該js包的用戶,會提示更新,這時(shí)會更新到該binary版本下的上一個(gè)js包。沒有安裝該js包的用戶,不會安裝到這個(gè)js包。

4,命令行發(fā)布js包的時(shí)候,更新描述,--description里面需要換行,使用 '\\n'。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容