将 Firebase 与 Google Toolbox for Mac 一起使用时出现未定义符号 Xcode 错误

Posted

技术标签:

【中文标题】将 Firebase 与 Google Toolbox for Mac 一起使用时出现未定义符号 Xcode 错误【英文标题】:Undefined symbols Xcode error when using Firebase with Google Toolbox for Mac 【发布时间】:2017-02-23 21:56:43 【问题描述】:

我有一个 ios 项目,它使用 Firebase 和 Google Toolbox for Mac,它们是通过 Pod 添加的。我的 Podfile 如下:

target 'MyApp' do
    pod 'GoogleToolboxForMac', '~> 2.1'
    pod 'GTMSessionFetcher', '~> 1.1'

    pod 'Firebase/Core'
    pod 'Firebase/Auth'
    pod 'Firebase/Database'
    pod 'Firebase/Messaging'
end

当我在 Xcode 中构建项目时,出现此错误:

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_GTMLogger", referenced from:
      objc-class-ref in FirebaseMessaging(GIPReachability_ae5504e4a6a28a1d8997c6f38e8bff8b.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

谁能给点建议?从其他类似的问题来看,我可能需要在Linked Frameworks and Libraries 中导入一个框架。我为 Firebase 消息添加了 UserNotifications.framework,但不确定我还需要什么...?

【问题讨论】:

【参考方案1】:

看来您需要将another Cocoapod 添加到您的Podfile

target 'MyApp' do
    pod 'GoogleToolboxForMac', '~> 2.1'
    pod 'GTMSessionFetcher', '~> 1.1' # version 1.1 & newer up to - but not including - 2.0
    pod 'gtm-logger', '>= 0.0.5' # version 0.0.5 or newer

    pod 'Firebase/Core'
    pod 'Firebase/Auth'
    pod 'Firebase/Database'
    pod 'Firebase/Messaging'
end

然后运行pod update

【讨论】:

以上是关于将 Firebase 与 Google Toolbox for Mac 一起使用时出现未定义符号 Xcode 错误的主要内容,如果未能解决你的问题,请参考以下文章

将 Google Play 游戏与 Firebase 混合使用

将Firebase存储与Google云CDN集成

将 android studio 项目与 Firebase 集成以实现 google 登录功能时出现依赖错误

将 google firebase 分析与 iOS 操作扩展一起使用

将 Firebase 与 Google Toolbox for Mac 一起使用时出现未定义符号 Xcode 错误

使用Arduino IDE将Arduino Node-MCU与Google Firebase连接