解决 Firebase 子规范 pod 依赖冲突的问题
Posted
技术标签:
【中文标题】解决 Firebase 子规范 pod 依赖冲突的问题【英文标题】:Trouble in resolving dependencies conflict for Firebase subspecs pod 【发布时间】:2020-05-01 05:58:54 【问题描述】:我正在尝试修复我的 firebase subspec pod 的版本,以使 Podfile.lock 在整个团队中保持不变,但是在使用 pod install
安装 pod 时会弹出一些错误。我已经使用pod outdated
命令检查了所有子规范的最新版本,然后将所需的版本放在子规范前面。
我尝试过运行pod repo update
,但即使这样也没有用
Podfile
pod 'Firebase','6.23.0'
pod 'Firebase/Analytics'
pod 'Firebase/Messaging'
pod 'Firebase/DynamicLinks'
pod 'FirebaseRemoteConfig','4.4.9'
运行 pod install 时的错误日志
[!] CocoaPods could not find compatible versions for pod
"FirebaseAnalytics":
In snapshot (Podfile.lock):
FirebaseAnalytics (= 6.3.0, ~> 6.0)
In Podfile:
Firebase/Analytics was resolved to 6.23.0, which depends on
Firebase/Core (= 6.23.0) was resolved to 6.23.0, which depends on
FirebaseAnalytics (= 6.4.2)
Specs satisfying the `FirebaseAnalytics (= 6.3.0, ~> 6.0),
FirebaseAnalytics (= 6.4.2)` dependency were found, but they required
a higher minimum deployment target.
当我运行 pod outdated
时,我得到了所有子规范的以下版本,因此我在 Podfile 中给出了相应的版本。
- Firebase 6.18.0 -> 6.23.0 (latest version 6.23.0)
- FirebaseABTesting 3.1.2 -> 3.2.0 (latest version 3.2.0)
- FirebaseAnalytics 6.3.0 -> 6.4.2 (latest version 6.4.2)
- FirebaseCore 6.6.3 -> 6.6.7 (latest version 6.6.7)
- FirebaseCoreDiagnostics 1.2.1 -> 1.2.4 (latest version 1.2.4)
- FirebaseDynamicLinks 4.0.7 -> 4.0.8 (latest version 4.0.8)
- FirebaseInstallations 1.1.0 -> 1.2.0 (latest version 1.2.0)
- FirebaseInstanceID 4.3.2 -> 4.3.4 (latest version 4.3.4)
- FirebaseMessaging 4.3.0 -> 4.3.1 (latest version 4.3.1)
- FirebaseRemoteConfig 4.4.8 -> 4.4.9 (latest version 4.4.9)
【问题讨论】:
在 Stack Overflow 上,请勿分享文字图片。将文本复制到问题本身并设置格式,以便于阅读、复制和搜索。 @DougStevenson 我会编辑相同的,谢谢 【参考方案1】:我认为您混淆了 pod 和子规范。
Firebase 的版本为 6.23.0(请参阅 its podspec)。这个 Pod 有一个名为“Firebase/RemoteConfig”的子规范,它引入了另一个名为 FirebaseRemoteConfig
的 Pod,而后者又具有版本 4.4.9
所以,pod 'Firebase/RemoteConfig','4.4.9'
的规范没有意义,因为 pod 的子规范没有自己的单独版本号。这是什么
您的所有规范来源都不包含满足依赖关系的规范:
Firebase/RemoteConfig (= 4.4.9)
。
想告诉你。
请改用pod 'FirebaseRemoteConfig','4.4.9'
。
【讨论】:
感谢您的澄清,现在我用所需的更改更新了我的问题,现在出现了一个新错误,它与项目的最小部署目标有关,我应该升级部署版本吗? 听起来确实像,是的。您当前的部署目标是什么?确保在应用的 Xcode 项目和 Podfile 中指定相同的版本。 嗯,它是 11.0,我想将最小部署目标保持为 11.0。并且我检查了 podfile 和 Xcode 项目是否具有相同的目标 Podfile是否指定除了ios之外的其他平台?【参考方案2】:我安装了如下的吊舱,
pod 'Firebase','6.23.0'
pod 'Firebase/Analytics','6.23.0'
pod 'Firebase/Messaging','6.23.0'
pod 'Firebase/DynamicLinks','6.23.0'
pod 'FirebaseRemoteConfig','4.4.9'
这很好用,没有任何问题。
【讨论】:
以上是关于解决 Firebase 子规范 pod 依赖冲突的问题的主要内容,如果未能解决你的问题,请参考以下文章
Cocoapods:找不到“Firebase/Core”的规范
如何将 Firebase Analytics 添加为 pod 的依赖项?
在我自己创建的 pod 中添加 Firebase 作为依赖项