react native更新失效的解決辦法:1、直接把IPA包提交App Store審核,然后把IPA包upload到pushy平臺(tái);2、歸檔出的IPA包upload到pushy平臺(tái),然后把IPA包提交到iTunes connect;3、通過Xcode編譯一個(gè)release模式的包到手機(jī),然后用iTunes導(dǎo)出該IPA包,再upload該IPA到pushy平臺(tái)即可。
本教程操作環(huán)境:Windows10系統(tǒng)、react18.0.0版、Dell G3電腦。
react native更新失效怎么辦?
react-native 導(dǎo)致熱更新失敗的問題之一
該文章是本人的一次項(xiàng)目總結(jié),本人項(xiàng)目使用的是react-native-pushy。假設(shè)你已經(jīng)有一個(gè)RN項(xiàng)目,且成功配置了pushy服務(wù),接入配置好了熱更代碼,如果沒有請參照react-native-pushy GitHub上的文檔進(jìn)行配置。
問題
最近APP改版后,打了一個(gè)新的熱更包,然后用老版本APP去熱更會(huì)出現(xiàn)閃退,debug調(diào)試報(bào)錯(cuò)如下Unable to execute JS call: __fbBatchedBridge is undefined。
錯(cuò)誤操作流程
xcode修改version為1.0.0,然后打一個(gè)release模式的包到手機(jī),然后xcode歸檔出一個(gè)1.0.0的ipa包出來,推到熱更平臺(tái)上,然后用這個(gè)底包去熱更,然后就閃退了。
原因
通過多次復(fù)現(xiàn)問題,使用debug模式打印出報(bào)錯(cuò),然后查看GitHub文檔,找出原因是我操作流程的問題。熱更必須保證pushy平臺(tái)上的底包和手機(jī)上安裝的app是同一個(gè)。然而我使用Xcode往手機(jī)安裝的包,簡稱A,與用Xcode歸檔出來的包,簡稱B。A與B雖然代碼完全一致,版本號(hào)一致,但這就已經(jīng)是兩個(gè)包了,所以熱更失敗。
解決方法
-
正常情況,直接把IPA包提交App Store審核,然后把這個(gè)IPA包upload到pushy平臺(tái),用戶從App Store下載該版本的包就可以正常更新。
-
測試時(shí),最好結(jié)合Text File,把歸檔出的IPA包upload到pushy平臺(tái),然后把IPA包提交到iTunes connect,測試人員從Text File下載該版本的包安裝,然后就可以正常熱更了。
-
如果你的iTunes沒有升級(jí),還可以通過Xcode編譯一個(gè)release模式的包到手機(jī),然后用iTunes導(dǎo)出該IPA包,然后upload該IPA到pushy平臺(tái),一樣能正常熱更。
總結(jié)
反正就是保證pushy平臺(tái)的底包與手機(jī)上安裝的app一致。
推薦學(xué)習(xí):《react視頻教程》