如何解决"重复符号"在Xcode中添加Firebase时

时间:2017-01-26 10:06:57

标签: ios objective-c swift xcode firebase

我无法解决错误"重复符号"。

错误是

duplicate symbol _GSDK_NSClassFromString in: .../Pods/FirebaseCore/Frameworks/FirebaseCore.framework/FirebaseCore(overload_9ea29fd47bf44ee000bc4282b65dac06.o)
 /Pods/GoogleSymbolUtilities/Frameworks/frameworks/GoogleSymbolUtilities.framework/GoogleSymbolUtilities(overload.o)

duplicate symbol _GSDK_objc_getClass in: .../Pods/FirebaseCore/Frameworks/FirebaseCore.framework/FirebaseCore(overload_9ea29fd47bf44ee000bc4282b65dac06.o)
/Pods/GoogleSymbolUtilities/Frameworks/frameworks/GoogleSymbolUtilities.framework/GoogleSymbolUtilities(overload.o)

duplicate symbol _GSDK_objc_getProtocol in:    ...Pods/FirebaseCore/Frameworks/FirebaseCore.framework/FirebaseCore(overload_9ea29fd47bf44ee000bc4282b65dac06.o)
    .../Pods/GoogleSymbolUtilities/Frameworks/frameworks/GoogleSymbolUtilities.framework/GoogleSymbolUtilities(overload.o)

duplicate symbol _GSDK_objc_lookUpClass in:        ...Pods/FirebaseCore/Frameworks/FirebaseCore.framework/FirebaseCore(overload_9ea29fd47bf44ee000bc4282b65dac06.o)
    ...Pods/GoogleSymbolUtilities/Frameworks/frameworks/GoogleSymbolUtilities.framework/GoogleSymbolUtilities(overload.o)

ld: 4 duplicate symbols for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我更新并安装了Podfile。但它没有用。

广告文件

target 'game' do

  # Pods for game
  pod 'Firebase'
  pod 'Firebase/AdMob'
end

之前我可以添加Firebase。但是,当我不小心删除" FirebaseCore.framework"。 之后我删除了Pod并重新安装了Firebase,但它没有用。

我该如何解决?

3 个答案:

答案 0 :(得分:4)

我有同样的问题。似乎其他链接器标志中的-all_load标志导致了这一点。

答案 1 :(得分:2)

3.11.1中引入了Firebase构建问题,将在3.13.0中修复,可能导致重复符号问题。与此同时,解决方法是备份到Firebase 3.11.0,方法是使用明确的版本号注释podfile中的所有Firebase子规范,例如:

pod 'Firebase/Analytics', '3.11.0'

答案 2 :(得分:0)

我通过

解决了该问题
  1. 从我的podfile中删除所有内容并运行pod install
  2. 将所有内容放回我的podfile中并运行pod install

这是唯一对我有用的东西。