React Native降级后Xcode运行报错:butter/map.h文件未找到
'butter/map.h' file not found 解决指南(RN 0.72.7降级到0.69.3后)
这个错误本质是RN版本降级后,依赖的C/C++底层库(比如folly)版本不兼容,或者缓存/配置残留导致依赖没有正确同步。下面是一步步的解决方法:
1. 彻底清理CocoaPods并重新安装
先把iOS目录下的旧依赖清干净,避免缓存干扰:
- 切到iOS目录:
cd ios - 删除锁文件和Pods文件夹:
rm Podfile.lock && rm -rf Pods - 清空CocoaPods全局缓存:
pod cache clean --all - 重新安装依赖,M1/M2芯片的Mac记得加arch指令:
arch -x86_64 pod install(Intel芯片直接用pod install)
2. 同步第三方库到适配RN 0.69.3的版本
很多第三方库对RN版本有强依赖,降级RN后没同步降级这些库就会出问题:
- 打开项目根目录的
package.json,排查那些可能涉及底层C/C++依赖的库(比如网络、性能监控类的包) - 查这些库的文档,找到适配RN 0.69.x的版本号,修改
package.json后执行npm install(或yarn install),再重新跑pod install
3. 修正Xcode的Header Search Paths配置
有时候旧的路径配置会残留,导致Xcode找错文件:
- 打开iOS项目的Xcode工程,选中主target
- 进入Build Settings,搜索Header Search Paths
- 确保列表里有
$(inherited)(这个会自动继承Pods的路径配置),删掉任何指向高版本RN的无效路径,保存后重新编译
4. 清空Xcode编译缓存
Xcode的旧缓存也可能导致编译异常:
- 用快捷键
Cmd+Shift+K清理编译文件夹,或者点击菜单栏Product > Clean Build Folder - 完全关闭Xcode,杀掉后台的Xcode进程
- 重启Xcode后重新运行项目
5. 检查RN核心依赖的完整性
RN 0.69.x依赖的folly版本和0.72.x不同,butter是folly的子模块,确保它被正确安装:
- 进入
ios/Pods/Folly目录,检查是否存在butter文件夹 - 如果不存在,删掉项目根目录的
node_modules:rm -rf node_modules,重新执行npm install,再重新运行pod install
内容的提问来源于stack exchange,提问作者Nitika Kohli
相关产品推荐
相关产品推荐

