第二節(jié): CodePush熱更新問題

一:安裝注冊CodePush,添加應(yīng)用

1, npm install -g code-push-cli

2, code-push -v

3, code-push register

4, code-push login

5, code-push app add [APPNAME]

6, code-push app list

7, code-push deployment ls [APPNAME] -k

二:native 安裝codepush相關(guān)庫

1,npm install --save react-native-code-push (工程根目錄安裝,安裝之后無需RN的package.json中再引入安裝,當(dāng)然你寫了也沒用,再npm install的時候此條目將會被自動刪除);

2,react-native link react-native-code-push (此處注意,0.2X版本以上無需使用rpm,注意執(zhí)行時appdelegate.m, jslocation, xcode.proj文件是否驗證通過,如果沒有,需在postlink.js中心修改查找路徑,若出現(xiàn)不可知錯誤,注意使用版本是否正確);

三:Xcode引入

1,在Podfile中引入CodePush文件路徑;

2,在appdelegate.m中,引入文件,并寫入 NSURL *jsCodeLocation = nil;? jsCodeLocation = [CodePush bundleURL];

3,在對應(yīng)的地方引入 :

? ? #ifdef DEBUG

? ? ? ? jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil]; //本地查找

? ? #else

? ? jsCodeLocation = [CodePush bundleURL]; //codepush服務(wù)查找

? ? #endif

4,修改info.plist文件,注意版本號與codepush上推送的jsbundle文件的版本號一致,填寫對應(yīng)的Deployment Key? ,允許相關(guān)網(wǎng)址使用http訪問;

5,? 在RN的app.js, 寫上相應(yīng)的更新代碼(注意代碼的正確性);

6,在RN 目錄下執(zhí)行 release-react [APPNAME] ios? —t 1.0.10? —dev true —d Staging —des "Test12" —mandatory true , 將生成的jsbundle文件拖入工程之中;

7,運行XCODE工程,觀察控制臺,如若如果發(fā)現(xiàn)Checking for update,說明之前步驟均正確,如若出現(xiàn)App is up to date,則說明熱更新成功;若沒出現(xiàn)具體問題,具體分析;


*****,測試通過后執(zhí)行:code-push promote [APPNAME] Staging Production 將bundle變?yōu)榘l(fā)布狀態(tài);

后感:在此過程中肯定會遇到很多問題,網(wǎng)上大多數(shù)回答都不靠譜,注意分析源碼,有針對的查找問題。

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

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