最近xcode更新到xcode10后以前的RN項(xiàng)目莫名跑不起來(lái)了,諸如:
'config.h' file not found
libfishhook.a cannot be found
真機(jī)運(yùn)行時(shí)
No member named '__rip' in '__darwin_arm_thread_state64'
我這個(gè)項(xiàng)目的react-native
版本是0.55.4
看了很多解決方案在這里總結(jié)下:
首先重新install下node-models并且清理下各種緩存
cd到工程目錄下在終端執(zhí)行
rm -rf node_modules/ && yarn cache clean && yarn
此時(shí)運(yùn)行會(huì)提示如果'config.h' file not found
呢蔫,可以看下node_modules/react-native/
目錄下有沒(méi)有third-party
文件切心,如果沒(méi)有可以執(zhí)行:
cd node_modules/react-native/
./scripts/ios-install-third-party.sh
現(xiàn)在可以cd到third-party/glog-0.3.4
執(zhí)行configure
cd third-party/glog-0.3.4
./configure
configure: error: cannot run C compiled programs 解決辦法
./configure --host=arm
讓后發(fā)現(xiàn)libfishhook.a
找不到了
找到websocket這個(gè)庫(kù)飒筑,把錯(cuò)誤的.a刪了
再加上正確的就可以運(yùn)行了
對(duì)了,如果你在真機(jī)上運(yùn)行還可能會(huì)報(bào)No member named '__rip' in '__darwin_arm_thread_state64'
錯(cuò)誤绽昏,找到third-party/glog/config.h
文件
將下列代碼
#define PC_FROM_UCONTEXT uc_mcontext->__ss.__rip
替換成
#if defined(__arm__) || defined(__arm64__)
#define PC_FROM_UCONTEXT uc_mcontext->__ss.__pc
#else
#define PC_FROM_UCONTEXT uc_mcontext->__ss.__rip
#endif
再次編譯就可以正常運(yùn)行了