ReactNative使用CodePush熱更新文檔(iOS篇)

此文檔是在以前公司使用RN時我自己總結iOS使用codePush相關的文檔,現在放上來供需要的同學參考。

CodePush安裝及賬號注冊

1.安裝CodePush CLI

管理CodePush賬號需要通過NodeJS-based CLI。

只需要在終端輸入npm install -g

code-push-cli,就可以安裝了。

安裝完畢后,輸入code-push -v查看版本。

*npm為NodeJS的包管理器,如果你沒安裝NodeJS請先安裝。

2.創建一個CodePush賬號

在終端輸入code-push register會咋瀏覽器中打開授權頁面。授權通過之后,CodePush會告訴你“access key”,復制此key到終端即可完成注冊。

然后終端輸入code-push login進行登陸,登陸成功后,你的session文件將會寫在/Users/你的用戶名/.code-push.config。

3.CodePush終端命令

code-push

login登陸

code-push

loout注銷

code-push

access-key ls列出登陸的token

code-push

access-key rm 刪除某個access-key

4.CodePush服務器注冊app

code-push app add在賬號里面添加一個新的app

code-push app remove或者rm在賬號里移除一個app

code-push app rename重命名一個存在app

code-push app list或則ls列出賬號下面的所有app

code-push

app transfer把app的所有權轉移到另外一個賬號

CodePush環境配置(iOS)

1.Native項目利用cocoaPods集成好ReactNative之后,在終端cd到項目根目錄,執行一下命令行:

npm install --save

react-native-code-push@latest安裝react-native-code-push模塊;

2.利用cocoapod導入codePush到項目中,在podfile文件中輸入

pod'CodePush',:path =>

'../node_modules/react-native-code-push'然后終端cd到ios項目根目錄執行podinstall

打開項目在BuildPhases->Link Binary With Libraries中點擊”+”添加libCodePush.a , libz.tbd

3.在RN View承載controller中#import

并添加如下代碼

#if DEBUG

jsCodeLocation=[[NSBundle mainBundle] URLForResource:@"main"withExtension:@"jsbundle"];

#else

jsCodeLocation =[CodePush bundleURL];

#endif

4.為了讓CodePush運行的時候知道需要更新哪些應用,打開項目的Info.plist文件添加一個新的鍵CodePushDeploymentKey,值就是你配置的讓app連接的服務。

查看鍵值的命令:code-push deployment ls您的應用名–k,終端顯示如下圖

測試版填寫Staging Deployment key下的鍵值;正式版填寫Production Deployment key下的鍵值。

CodePush熱更新操作

1.iOS打離線bundle命令

注意打包前手動需要在指定目錄下新建存儲jsBundle和asset文件的bundle文件。

react-native bundle

--entry-file index.ios.js --bundle-output ./ios/bundle/main.jsbundle --platform

ios --assets-dest ./ios/bundle --dev false

2.CodePush上傳bundle命令

以下命令將本地bundle文件上傳到服務器

code-push release一仟金融_DAT /Users/ebiz/Desktop/代碼管理/一仟金融/DEV/YQfinance_RN/ios/bundle 1.1.2 --deploymentName Staging--description "測試更新1" --mandatory true

deploymentName:生產(Production),測試(Staging)

mandatory:false(下次更新),true(本次強制更新)

3.測試發布的JS發布到正式版

測試版發布成功測試沒有問題后可以通過此方法將bundle發布到正式版

code-push promote

–description, –des描述[string] [默認值: null]

–disabled, -x該促進更新,客戶端是否可以獲得更新[boolean] [默認值: null]

–mandatory, -m是否強制更新[boolean] [默認值:null]

–rollout, -r此促進更新推送用戶的百分比[string] [默認值: null]

示例:

code-push promote MyAppStaging Production

"MyApp"中"Staging"部署的最新更新發布到"Production"部署中

code-push promote MyAppStaging Production –des "Production rollout" -r 25

"MyApp"中"Staging"部署的最新更新發布到"Production"部署中,并且只推送25%的用戶

4.CodePush查看上傳版本歷史

一下命令可以查看測試環境下的版本發布及安裝,回滾信息

code-push deploymenthistory

5.CodePush版本回滾

當發現新版本bundle使用報錯時可以使用一下命令進行回滾操作

code-push rollback一仟金融_DAT Staging

6.CodePush修改更新

code-pushpatch

--label,

-l指定標簽版本更新,默認最新版本[string] [默認值: null]

--description,

--des描述[string] [默認值:null]

--disabled,

-x該修改更新,客戶端是否可以獲得更新[boolean] [默認值: null]

--mandatory,

-m是否強制更新[boolean] [默認值: null]

--rollout,

-r此更新推送用戶的百分比,此值僅可以從先前的值增加。[string] [默認值: null]

示例:

code-push

patch MyApp Production --des "Updated description" -r 50修改"MyApp"的"Production"部署中最新更新的描述,并且更新推送范圍為50%

code-push patch MyApp

Production -l v3 --des "Updated description for v3"修改"MyApp"的"Production"部署中標簽為v3的更新的描述CodePush安裝及賬號注冊

1.安裝CodePush CLI

管理CodePush賬號需要通過NodeJS-based CLI。

只需要在終端輸入npm install -g

code-push-cli,就可以安裝了。

安裝完畢后,輸入code-push -v查看版本。

*npm為NodeJS的包管理器,如果你沒安裝NodeJS請先安裝。

2.創建一個CodePush賬號

在終端輸入code-push register會咋瀏覽器中打開授權頁面。授權通過之后,CodePush會告訴你“access key”,復制此key到終端即可完成注冊。

然后終端輸入code-push login進行登陸,登陸成功后,你的session文件將會寫在/Users/你的用戶名/.code-push.config。

3.CodePush終端命令

code-push

login登陸

code-push

loout注銷

code-push

access-key ls列出登陸的token

code-push

access-key rm 刪除某個access-key

4.CodePush服務器注冊app

code-push app add在賬號里面添加一個新的app

code-push app remove或者rm在賬號里移除一個app

code-push app rename重命名一個存在app

code-push app list或則ls列出賬號下面的所有app

code-push

app transfer把app的所有權轉移到另外一個賬號

CodePush環境配置(iOS)

1.Native項目利用cocoaPods集成好ReactNative之后,在終端cd到項目根目錄,執行一下命令行:

npm install --save

react-native-code-push@latest安裝react-native-code-push模塊;

2.利用cocoapod導入codePush到項目中,在podfile文件中輸入

pod'CodePush',:path =>

'../node_modules/react-native-code-push'然后終端cd到ios項目根目錄執行podinstall

打開項目在BuildPhases->Link Binary With Libraries中點擊”+”添加libCodePush.a , libz.tbd

3.在RN View承載controller中#import

并添加如下代碼

#if DEBUG

jsCodeLocation=[[NSBundle mainBundle] URLForResource:@"main"withExtension:@"jsbundle"];

#else

jsCodeLocation =[CodePush bundleURL];

#endif

4.為了讓CodePush運行的時候知道需要更新哪些應用,打開項目的Info.plist文件添加一個新的鍵CodePushDeploymentKey,值就是你配置的讓app連接的服務。

查看鍵值的命令:code-push deployment ls您的應用名–k,終端顯示如下圖

測試版填寫Staging Deployment key下的鍵值;正式版填寫Production Deployment key下的鍵值。

CodePush熱更新操作

1.iOS打離線bundle命令

注意打包前手動需要在指定目錄下新建存儲jsBundle和asset文件的bundle文件。

react-native bundle

--entry-file index.ios.js --bundle-output ./ios/bundle/main.jsbundle --platform

ios --assets-dest ./ios/bundle --dev false

2.CodePush上傳bundle命令

以下命令將本地bundle文件上傳到服務器

code-push release一仟金融_DAT /Users/ebiz/Desktop/代碼管理/一仟金融/DEV/YQfinance_RN/ios/bundle 1.1.2 --deploymentName Staging--description "測試更新1" --mandatory true

deploymentName:生產(Production),測試(Staging)

mandatory:false(下次更新),true(本次強制更新)

3.測試發布的JS發布到正式版

測試版發布成功測試沒有問題后可以通過此方法將bundle發布到正式版

code-push promote

–description, –des描述[string] [默認值: null]

–disabled, -x該促進更新,客戶端是否可以獲得更新[boolean] [默認值: null]

–mandatory, -m是否強制更新[boolean] [默認值:null]

–rollout, -r此促進更新推送用戶的百分比[string] [默認值: null]

示例:

code-push promote MyAppStaging Production

"MyApp"中"Staging"部署的最新更新發布到"Production"部署中

code-push promote MyAppStaging Production –des "Production rollout" -r 25

"MyApp"中"Staging"部署的最新更新發布到"Production"部署中,并且只推送25%的用戶

4.CodePush查看上傳版本歷史

一下命令可以查看測試環境下的版本發布及安裝,回滾信息

code-push deploymenthistory

5.CodePush版本回滾

當發現新版本bundle使用報錯時可以使用一下命令進行回滾操作

code-push rollback一仟金融_DAT Staging

6.CodePush修改更新

code-pushpatch

--label,

-l指定標簽版本更新,默認最新版本[string] [默認值: null]

--description,

--des描述[string] [默認值:null]

--disabled,

-x該修改更新,客戶端是否可以獲得更新[boolean] [默認值: null]

--mandatory,

-m是否強制更新[boolean] [默認值: null]

--rollout,

-r此更新推送用戶的百分比,此值僅可以從先前的值增加。[string] [默認值: null]

示例:

code-push

patch MyApp Production --des "Updated description" -r 50修改"MyApp"的"Production"部署中最新更新的描述,并且更新推送范圍為50%

code-push patch MyApp

Production -l v3 --des "Updated description for v3"修改"MyApp"的"Production"部署中標簽為v3的更新的描述。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容