EAS构建iOS项目遇Firebase/CoreOnly版本兼容问题求助
解决Expo项目EAS iOS构建的Firebase/CoreOnly版本冲突问题
问题根源
从构建日志可以明确,项目中两个Firebase相关依赖对Firebase/CoreOnly的版本要求存在冲突:
expo-firebase-core(版本6.0.0)依赖Firebase/CoreOnly = 9.5.0@react-native-firebase/app(版本17.3.1)依赖Firebase/CoreOnly = 10.5.0
CocoaPods无法同时满足这两个版本要求,导致构建失败。
解决方案
方案1:降级@react-native-firebase/app适配Expo SDK版本
Expo 47对应的Firebase依赖版本为9.x,而@react-native-firebase/app 17.x适配的是Firebase 10.x,因此需要将@react-native-firebase/app降级到适配Firebase 9.x的版本(如15.4.0):
- 修改
package.json中的依赖:
"@react-native-firebase/app": "^15.4.0"
- 删除
node_modules和锁文件:
rm -rf node_modules package-lock.json
- 重新安装依赖:
npm install
- 清理构建缓存并重新构建:
eas build -p ios --clear-cache
方案2:替换为Expo官方Firebase集成
如果不需要react-native-firebase的特定功能,建议使用Expo官方维护的Firebase模块,版本会自动适配Expo SDK,避免冲突:
- 卸载
@react-native-firebase/app:
npm uninstall @react-native-firebase/app
- 安装Expo官方Firebase核心包:
expo install expo-firebase-app
- 替换其他Firebase相关依赖为Expo提供的版本(如
expo-firebase-auth替代@react-native-firebase/auth等)。
方案3:强制统一Pod版本(风险提示)
若必须同时使用两个库,可以通过expo-build-properties插件强制指定Firebase/CoreOnly版本,但可能引发运行时兼容性问题,需充分测试:
- 修改
app.json中的plugins配置:
"plugins": [ [ "expo-build-properties", { "ios": { "deploymentTarget": "13.0", "pods": { "Firebase/CoreOnly": "9.5.0" } }, "android": { "compileSdkVersion": 31, "targetSdkVersion": 31, "buildToolsVersion": "31.0.0" } } ] ]
- 清理缓存后重新构建:
eas build -p ios --clear-cache
方案4:彻底清理依赖与缓存
确保本地依赖和构建服务器缓存无残留冲突:
- 清理本地依赖:
rm -rf node_modules package-lock.json npm install
- 清理Expo本地缓存:
expo r -c
- 清理EAS构建缓存并重新构建:
eas build -p ios --clear-cache
内容的提问来源于stack exchange,提问作者Vas
相关产品推荐
相关产品推荐

