【问题标题】:Cannot import Firebase in CocoaPod无法在 CocoaPod 中导入 Firebase
【发布时间】:2016-11-06 20:02:55
【问题描述】:

我正在创建一个我想从中导入 Firebase 的 CocoaPod。我得到了错误:

“没有这样的模块'Firebase'”

当我将 import Firebase 添加到我的 pod 中的 Swift 文件时。

我的 CocoaPod Foo 的 pod 规范文件,Foo.podspec,包含:

s.dependency 'Firebase', '~> 3.6'

【问题讨论】:

  • “我将 import Firebase 添加到我的 pod 中的 Swift 文件中。”你能解释一下吗? s.dependency 只应在其他人使用您的 pod 时告诉您,必要时它将导入 Firebase(避免重复导入)。但是不清楚“没有这样的模块”错误是否意味着这是您在当前 pod 中的用途。声明 s.dependency 确实会进行导入。您可能必须在 pod 中使用 podfile 来设置 XCode 编译所需的文件。
  • 我不应该在消耗我的 CocoaPod 的 Podfile 中复制我的依赖项。声明s.dependency应该做导入

标签: swift firebase cocoapods


【解决方案1】:

Firebase 为其最新版本的 pod 制作的 podspec 中的模块映射似乎存在问题(请参阅https://github.com/CocoaPods/CocoaPods/issues/6138)。

我目前正在开发一个基于 Firebase 的聊天系统,我已将其抽象为私有 CocoaPod。如果我在我的代码/ podspec 中删除了 Firebase 的所有痕迹,那么所有其他 Pod 都会完美导入。在解决这个问题之前,我不知道我们能做些什么。

干杯!

【讨论】:

  • 谢谢。我不知道你是否提交了一张票,所以我继续提交了一张。奇怪的是,没有办法共享票的 URL。我会在这个帖子中更新我的漏洞。
【解决方案2】:

我最近遇到了同样的问题,我决定在我的开发 pod 和使用它的应用程序中使用 firebase 的解决方案是在 Xcode 中设置 firebase sdk,以便可以在与系统框架相同。

  1. 下载the firebase sdk
  2. 将您需要的框架移至 Xcode /Applications/Xcode.app/Contents/Developer/Library/Frameworks/
  3. 设置您的 pod 规范,以便它知道框架在哪里,并添加一些必需的依赖项。

    # Specify what libraries this depends on.
    s.libraries = [
      'c++', # FirebaseAnalytics.
      'icucore', # FirebaseDatabase.
      'sqlite3', # FirebaseAnalytics.
      'z', # FirebaseAnalytics.
    ]
    
    # Specify what frameworks this depends on.
    s.frameworks = [
      'AddressBook', # FirebaseAnalytics.
      'AdSupport', # FirebaseAnalytics.
      'CFNetwork', # FirebaseDatabase.
      'SafariServices', # FirebaseAnalytics.
      'Security', # FirebaseAnalytics, FirebaseAuth, FirebaseDatabase.
      'StoreKit', # FirebaseAnalytics.
      'SystemConfiguration', # FirebaseAnalytics, FirebaseDatabase.
      'FirebaseAnalytics',
      'FirebaseInstanceID',
      'FirebaseCore',
      'FirebaseCoreDiagnostics',
      'FirebaseNanoPB',
      'GoogleToolboxForMac',
      'FirebaseAuth',
      'GTMSessionFetcher',
      'FirebaseDatabase'
    ]
    s.xcconfig = { 'FRAMEWORK_SEARCH_PATHS' => '/Applications/Xcode.app/Contents/Developer/Library/Frameworks/**' }
    
    # LDFLAGS required by Firebase dependencies.
    s.pod_target_xcconfig = {
      'OTHER_LDFLAGS' => '$(inherited) -ObjC',
    }
    

此示例仅使用 firebase Analytics、Auth 和 Database,但我确信也可以添加其他框架。这不是最好的解决方案,但它适用于我的情况。

【讨论】:

    猜你喜欢
    • 2018-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-02
    • 2021-01-25
    • 2018-08-07
    • 2022-12-07
    相关资源
    最近更新 更多