Cocoapods - FirebaseAnalytics 仅在使用 FirebaseCore 时安装

Posted

技术标签:

【中文标题】Cocoapods - FirebaseAnalytics 仅在使用 FirebaseCore 时安装【英文标题】:Cocoapods - FirebaseAnalytics only installed when using FirebaseCore 【发布时间】:2018-10-23 07:04:09 【问题描述】:

所以,这个问题不是关于如何解决问题,而是关于它是如何以这种方式工作的。

我想在我的应用中使用 FirebaseMessage 来推送通知,它具有 FirebaseCore 依赖项。我开始只是将 FirebaseMessage 添加到我的 Podfile 中

pod 'Firebase/Messaging'

我安装好了:

Installing Firebase (5.4.1)
Installing FirebaseCore (5.0.6)
Installing FirebaseInstanceID (3.1.1)
Installing FirebaseMessaging (3.0.3)
Installing GoogleToolboxForMac (2.1.4)
Installing Protobuf (3.6.0)

好的,这里的问题是我在构建项目时收到警告,因为缺少 FirebaseAnalytics。没问题,我可以补充:

pod 'Firebase/Messaging'
pod 'Firebase/Core'

然后得到:

Installing Firebase (5.4.1)
Installing FirebaseAnalytics (5.0.1)
Installing FirebaseCore (5.0.6)
Installing FirebaseInstanceID (3.1.1)
Installing FirebaseMessaging (3.0.3)
Installing GoogleToolboxForMac (2.1.4)
Installing Protobuf (3.6.0)
Installing nanopb (0.3.8)

...我得到额外的 nanopbFirebaseAnalytics

为什么会这样?查看 podspecs,FirebaseCore 没有与 FirebaseAnalytics 相关的依赖项: https://github.com/CocoaPods/Specs/blob/master/Specs/8/b/d/FirebaseCore/5.0.6/FirebaseCore.podspec.json

我想知道是什么告诉 cocoapods 安装 FirebaseAnalytics pod,以及为什么它在我专门安装 FirebaseCore 时发生。

【问题讨论】:

【参考方案1】:

Firebase/Core 是 Firebase pod 的 Core 子规范。详情见Firebase podspec。

虽然 FirebaseCore pod 不依赖于 FirebaseAnalytics,但 Firebase pod 的 Core 子规范会。

不幸的是,“Core”在 Firebase 术语中被重载,但在不破坏很多应用程序的情况下在这一点上进行更改会很棘手。

【讨论】:

以上是关于Cocoapods - FirebaseAnalytics 仅在使用 FirebaseCore 时安装的主要内容,如果未能解决你的问题,请参考以下文章

求助大神,cocoapods出现这个问题怎么解决

#面试#cocoapods 原理

Mac下安装CoCoaPods及使用CoCoaPods管理第3方库

CocoaPods安装和使用教程

cocoapods安装的库怎么引入

IOS-CocoaPods