React Native从0.50.4升级到0.55.3时找不到Yoga.c文件的求助
解决React Native 0.55.3升级后Yoga.c找不到的问题
这个问题我之前升级RN版本时也碰到过,本质是React Native 0.52.0及以上版本对Yoga的目录结构做了调整,你的Podfile里配置的yoga路径还是旧版本的,所以导致找不到Yoga.c文件。按下面的步骤来修复:
步骤1:彻底清理依赖缓存
先把旧的依赖和缓存文件全部删掉,避免残留影响:
# 回到项目根目录 rm -rf node_modules package-lock.json yarn.lock # 重新安装npm依赖 npm install
步骤2:清理iOS端的Pod缓存和Build文件
切换到iOS目录,清理旧的Pods和编译文件:
cd ios rm -rf Pods Podfile.lock build
步骤3:修正Podfile中的Yoga配置
这里有两种可选方案,推荐用方案二(更符合RN新版的规范):
方案一:更新Yoga的Pod路径
把原来单独配置的yoga pod路径,修改为新版的正确路径:
# 替换原来的yoga行 pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga/yoga'
方案二:通过React的Subspec引入Yoga(推荐)
直接在React的subspec列表里添加yoga,删除单独的yoga pod配置,这样更符合RN官方的集成方式:
pod 'React', :path => '../node_modules/react-native', :subspecs => [ 'BatchedBridge', 'yoga' # 新增这一行 ] # 删掉下面这一行单独的yoga配置 # pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
步骤4:重新安装Pods
执行Pod安装命令,确保拉取到正确的依赖:
pod install --repo-update
步骤5:重新编译项目
打开Xcode,先执行Clean Build Folder(快捷键Cmd+Shift+K),然后再编译项目,应该就能解决Yoga.c找不到的问题了。
为什么会出现这个问题?
React Native 0.52.0版本开始,Yoga的源码目录结构做了调整:
- 旧版本(0.52以下):Yoga的核心文件在
node_modules/react-native/ReactCommon/yoga/ - 新版本(0.52及以上):Yoga的核心文件被移动到了
node_modules/react-native/ReactCommon/yoga/yoga/子目录中
你的Podfile还是用了旧路径,所以npm安装后找不到对应的Yoga.c文件。
内容的提问来源于stack exchange,提问作者Sagar
相关产品推荐
相关产品推荐

