在 iOS 框架中使用 Firebase

Posted

技术标签:

【中文标题】在 iOS 框架中使用 Firebase【英文标题】:Using Firebase in iOS framework 【发布时间】:2017-02-14 08:33:16 【问题描述】:

我创建了一个应该使用 Firebase Analytics 的 Pod。问题是,如果我尝试将我的 Pod 与我的应用程序一起使用,它会失败,因为它在我的 Pod 中找不到 FirebaseAnalytics 模块。这是一个已知的问题。因此,我尝试通过复制所需的 Firebase 框架来集成 Firebase 而不使用 CocoaPods。我创建了 Pod,在 Podspec 文件中列出了 Firebase 框架,但是当我尝试构建应用程序时它失败了

找不到架构 arm64 的 FirebaseInstanceID 框架

任何帮助将不胜感激!

Podspec 如下所示:

Pod::Spec.new do |s|
...
  s.platform     = :ios, "9.0"

  s.vendored_frameworks = 'FirebaseAnalytics.framework', 'FirebaseCore.framework', 'FirebaseInstanceID.framework', 'GoogleInterchangeUtilities.framework', 'GoogleSymbolUtilities.framework', 'GoogleToolboxForMac.framework'

  s.dependency 'AFNetworking', '~> 2.6'
  s.dependency 'PromiseKit', '~> 4.0'
  s.dependency 'KeychainAccess', '~> 3.0'
  s.dependency 'libPhoneNumber-iOS', '~> 0.8'
  s.dependency 'SVProgressHUD', '~> 1.1'
  s.dependency 'SwiftyJSON', '~> 3.1.3'
  s.dependency 'JTAppleCalendar', '~> 6.0'

  s.pod_target_xcconfig =  'SWIFT_VERSION' => '3' 
...
end

【问题讨论】:

【参考方案1】:

现在 CocoaPods 支持静态框架,如果您制作一个 static_framework CocoaPod,就可以将 FirebaseAnalytics 和其他静态框架作为依赖项。将 FirebaseAnalytics 改回 s.dependency 并将以下内容添加到 podspec:

s.static_framework = true

【讨论】:

以上是关于在 iOS 框架中使用 Firebase的主要内容,如果未能解决你的问题,请参考以下文章

考虑到需要在某些类中导入框架,如何在 iOS 项目的特定目标中使用框架?

在 iOS 框架中使用 Firebase

为啥应用存档在 iOS、swift、xcode 9.2 中使用自定义框架失败

如何在 Flutter 插件的 Swift 编写的 iOS 部分中使用 Objective-C 框架

无法在 Swift 中使用网络扩展框架 iOS 8 设置 *** 连接

Xcode - 创建了一个 iOS 框架,但不能在项目中使用它