Firebase CocoaPods 出现重复符号链接器错误

Posted

技术标签:

【中文标题】Firebase CocoaPods 出现重复符号链接器错误【英文标题】:Duplicate Symbol Linker Error With Firebase CocoaPods 【发布时间】:2016-01-03 00:47:28 【问题描述】:

我一直在使用模拟器开发一个 iPad ios 应用程序,直到最近我接触到一台装有 iOS 8 的 iPad。

我一直在添加几个框架并且运行良好,并且该项目始终为模拟器构建并运行良好(现在仍然如此)。

但是,针对 Pods 项目中的 Firebase (2.5.0) 目标的重复符号(其中 220 个!)错误,为设备构建失败。我尝试了清理项目的所有基础知识,确保与 Obj-C 相关的标志到位,但没有。

我决定看看是否在工作期间某些配置被破坏了,所以我在一个新项目上进行了测试,使用 Firebase 作为唯一的 Pod,除了使用“pod install”设置工作区之外什么也没做,我得到了完全相同的结果错误。

所有重复的符号似乎都与同一个文件 (libFirebaseStatic.a) 和很多 o 文件有关。

这是错误,但出于显而易见的原因,我已经删除了错误的大部分中间部分:

duplicate symbol _llvm.cmdline in:
    /Users/RCR/Documents/DEV/IOS/Business/BLBusiness/Pods/Firebase/libFirebaseStatic.a(FPendingPut.o)
    /Users/RCR/Documents/DEV/IOS/Business/BLBusiness/Pods/Firebase/libFirebaseStatic.a(FBase64Utilities.o)
duplicate symbol _llvm.embedded.module in:
    /Users/RCR/Documents/DEV/IOS/Business/BLBusiness/Pods/Firebase/libFirebaseStatic.a(FPendingPut.o)
    /Users/RCR/Documents/DEV/IOS/Business/BLBusiness/Pods/Firebase/libFirebaseStatic.a(FBase64Utilities.o)
duplicate symbol _llvm.cmdline in:
    /Users/RCR/Documents/DEV/IOS/Business/BLBusiness/Pods/Firebase/libFirebaseStatic.a(FPendingPut.o)
    /Users/RCR/Documents/DEV/IOS/Business/BLBusiness/Pods/Firebase/libFirebaseStatic.a(FLevelDBStorageEngine.o)
.
.
.
duplicate symbol _llvm.embedded.module in:
    /Users/RCR/Documents/DEV/IOS/Business/BLBusiness/Pods/Firebase/libFirebaseStatic.a(FPendingPut.o)
    /Users/RCR/Documents/DEV/IOS/Business/BLBusiness/Pods/Firebase/libFirebaseStatic.a(FTransformedEnumerator.o)
duplicate symbol _llvm.cmdline in:
    /Users/RCR/Documents/DEV/IOS/Business/BLBusiness/Pods/Firebase/libFirebaseStatic.a(FPendingPut.o)
    /Users/RCR/Documents/DEV/IOS/Business/BLBusiness/Pods/Firebase/libFirebaseStatic.a(FClock.o)
duplicate symbol _llvm.embedded.module in:
    /Users/RCR/Documents/DEV/IOS/Business/BLBusiness/Pods/Firebase/libFirebaseStatic.a(FPendingPut.o)
    /Users/RCR/Documents/DEV/IOS/Business/BLBusiness/Pods/Firebase/libFirebaseStatic.a(FClock.o)
ld: 220 duplicate symbols for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

【问题讨论】:

【参考方案1】:

不要问我为什么或如何,但更新 Xcode(到 7.2)解决了这个问题。更新前我没注意我之前的版本是什么,但它必须是 7.1 或 7.1.1。

无论如何,问题已经解决了。我假设 Firebase 库的编译要求只有 Xcode 的最新更新才能满足。

【讨论】:

以上是关于Firebase CocoaPods 出现重复符号链接器错误的主要内容,如果未能解决你的问题,请参考以下文章

Firebase pod 为架构 arm64 生成重复符号

CocoaPods 停止安装 Firebase/Analytics 并出现错误

Firebase 未定义符号

Cocoapods:将 pod 链接到多个目标问题

Firebase 和 Google Signin 给出重复符号错误

安装 Firebase 2.4.3 cocoapods