Xcode提示类在两处实现:Unity接入Firebase打包iOS运行报错
重复类报错解决方法
该报错核心原因是Firebase SDK被重复引入:Unity导出Xcode项目时已经自带了Firebase iOS原生库,你又通过Cocoapods二次安装了相同组件,导致同一份类存在两份实现。
可按优先级选择以下方案解决:
- 方案1(首选,符合Unity官方集成规范)
- 删掉当前导出的全部Xcode项目文件,回到Unity工程
- 确认Unity内安装的Firebase Unity SDK版本为对应8.7.0,无旧版本残留
- 重新导出Xcode项目,导出完成后不要执行
pod install操作,直接打开.xcodeproj文件编译运行即可,Unity导出时已经完成了所有Firebase依赖的配置
- 方案2(需保留Cocoapods管理其他依赖时使用)
- 打开导出的Xcode项目,在Frameworks分组中找到所有Firebase开头的
.framework文件,选中后选择「Remove References」删除引用,不要删除源文件 - 打开Podfile,确认所有声明的Firebase组件版本严格和Unity使用的8.7.0对齐
- 终端进入Xcode项目目录,执行
pod install --repo-update,完成后打开生成的.xcworkspace编译
- 打开导出的Xcode项目,在Frameworks分组中找到所有Firebase开头的
- 额外排查点
- Unity中打开Build Settings > iOS > Player Settings > Other Settings,确认开启「Link Frameworks Statically」选项
- 确认「Scripting Backend」选择IL2CPP,不要使用Mono后端
- 若此前安装过旧版本Firebase,建议删除Unity工程内
Assets/Firebase目录,重新导入对应版本Firebase Unity SDK后再导出Xcode项目
内容的提问来源于stack exchange,提问作者Vincent Lauwen
相关产品推荐
相关产品推荐

