React Native iOS应用构建Pods时的Peer Dependency依赖冲突问题
解决EAS Build中Firebase/CoreOnly版本依赖冲突问题
问题原因
项目里expo-firebase-core(6.0.0版本)依赖Firebase/Core 9.5.0,进而需要Firebase/CoreOnly 9.5.0;而@react-native-firebase/app(16.7.0版本)直接依赖Firebase/CoreOnly 10.3.0,两个依赖对同一个Pod的版本要求不一致,导致CocoaPods无法生成兼容的Podfile。
解决方案
1. 统一Firebase依赖版本(推荐)
- 降级@react-native-firebase/app:react-native-firebase 14.x系列对应Firebase 9.x版本,适配
expo-firebase-core 6.0.0的依赖要求。执行命令:npm install @react-native-firebase/app@14.x.x --save - 升级expo相关依赖:若你的Expo SDK版本支持,升级
expo-firebase-core到兼容Firebase 10.x的版本(如Expo SDK 49对应expo-firebase-core~11.0.0),同时确保Expo SDK版本与该库匹配。执行命令:
注:升级前需确认Expo SDK版本兼容性,避免引入其他冲突。expo install expo-firebase-core@latest
2. 使用patch-package临时修复
若暂时无法升级/降级依赖,可修改expo-firebase-core的Pod依赖版本并生成补丁:
- 编辑
node_modules/expo-firebase-core/ios/EXFirebaseCore.podspec,找到以下行:
修改为兼容10.3.0的版本范围:s.dependency 'Firebase/Core', '9.5.0's.dependency 'Firebase/Core', '~>10.3.0' - 安装patch-package:
npm install patch-package --save-dev - 生成补丁文件:
npx patch-package expo-firebase-core - 将生成的
patches/目录提交到版本控制,EAS Build会自动应用该补丁。
3. 检查Expo SDK兼容性
确保你的Expo SDK版本与所有Firebase相关依赖版本匹配,参考Expo官方文档中各SDK版本对应的第三方库版本列表,避免跨版本依赖冲突。
原始报错信息:
[!] CocoaPods could not find compatible versions for pod "Firebase/CoreOnly": In Podfile: EXFirebaseCore (from `../node_modules/expo-firebase-core/ios`) was resolved to 6.0.0, which depends on Firebase/Core (= 9.5.0) was resolved to 9.5.0, which depends on Firebase/CoreOnly (= 9.5.0) RNFBApp (from `../node_modules/@react-native-firebase/app`) was resolved to 16.7.0, which depends on Firebase/CoreOnly (= 10.3.0)
内容的提问来源于stack exchange,提问作者Adam Bournes
相关产品推荐
相关产品推荐

