React Native Podfile中use_modular_headers!引发'ReactCommon'模块重定义错误
解决React Native中'Redefinition of module 'ReactCommon''错误
问题场景
通过npx react-native init MyNewProject创建RN项目,在iOS的Podfile中添加use_modular_headers!和第三方pod依赖后,Xcode和VS Code均出现'Redefinition of module 'ReactCommon''错误,重新安装pod后问题依旧。
解决方案
1. 缩小use_modular_headers!的作用范围
不要全局启用模块化头文件,仅给需要的第三方pod单独启用,避免和RN自身模块冲突:
修改Podfile如下:
target 'MyNewProject' do config = use_native_modules! use_react_native!( :path => config[:reactNativePath], :app_path => "#{Pod::Config.instance.installation_root}/.." ) # 仅给目标第三方pod启用模块化头文件 pod 'some pod', :modular_headers => true target 'MyNewProjectTests' do inherit! :complete # Pods for testing end end
2. 彻底清理缓存并重装依赖
执行以下命令完成清理:
- 进入iOS目录,删除Podfile.lock和Pods文件夹:
cd ios rm -rf Podfile.lock Pods - 清理Xcode编译缓存:
xcodebuild clean - 重新安装pod依赖:
pod install
3. 明确禁用RN自身的模块化头(针对旧版本RN)
如果使用的是RN 0.68及以下版本,可在use_react_native!中添加参数,明确禁用RN自身的模块化头支持:
use_react_native!( :path => config[:reactNativePath], :app_path => "#{Pod::Config.instance.installation_root}/..", :modular_headers => false )
4. 检查Xcode项目配置
打开Xcode项目,进入Build Settings:
- 搜索
Header Search Paths,确认没有重复添加ReactCommon相关的路径 - 搜索
Other C Flags,排查是否存在冲突的编译标记
内容的提问来源于stack exchange,提问作者Ram Kumar
相关产品推荐
相关产品推荐

