一:安裝注冊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ù)回答都不靠譜,注意分析源碼,有針對的查找問題。