升级旧React Native项目iOS构建报x86_64架构重复符号错误如何解决?
错误原因
该错误是升级React Native后,项目同时引入了两套Folly库导致的符号冲突:一套是RN核心依赖的RCT-Folly,另一套是调试工具Flipper依赖的Flipper-Folly,两个库的同名函数folly::makeConversionError重复定义,触发了链接报错。
解决方案
方案1:临时禁用Flipper(快速验证)
如果当前不需要使用Flipper调试功能,可先关闭Flipper验证是否能解决问题:
- 打开项目
ios/Podfile文件,找到use_flipper!相关代码,整行注释 - 执行以下命令重新安装iOS依赖:
cd ios pod deintegrate rm -f Podfile.lock pod install
完成后重新构建项目即可。
方案2:指定Flipper兼容版本(保留Flipper功能)
如果需要正常使用Flipper,可在Podfile中指定和当前RN版本匹配的Flipper版本,避免依赖冲突:
- 修改
ios/Podfile中的use_flipper!配置,指定兼容版本:
# 以RN 0.66~0.68版本为例,可根据自己的RN版本调整对应兼容的Flipper版本 use_flipper!({ 'Flipper' => '0.125.0', 'Flipper-Folly' => '2.6.10' })
- 执行以下命令更新依赖:
cd ios pod deintegrate rm -f Podfile.lock pod install --repo-update
方案3:清理本地缓存重试
如果以上操作后仍报错,清理Xcode缓存后再构建:
- 执行命令删除Xcode衍生数据:
rm -rf ~/Library/Developer/Xcode/DerivedData/* - 打开Xcode,按下快捷键
Cmd + Shift + K执行清理构建目录操作,之后重新构建项目。
方案4:升级RN到最新稳定版
如果是跨多个大版本升级RN导致的底层依赖不兼容,可将React Native升级到官方最新稳定版,官方已在后续版本修复了该Folly库冲突问题。
内容的提问来源于stack exchange,提问作者Dharmesh Dabhi
相关产品推荐
相关产品推荐

