终端机拒绝 "pod update"

Terminal refusing to "pod update"

我搜索了所有内容,但最接近的答案在此处 。但是它对我不起作用,因为我没有弃用 pods。而且我不能发表评论来询问别人我的情况,所以我提出了一个新问题。

我没有“指定版本”,我使用 IOS 13 作为部署目标。关于如何更新这些 pods 有什么想法吗?谢谢!

# platform :ios, '13.0'
target 'ChatApp' do
use_frameworks!

pod 'MessageKit'
pod 'JGProgressHUD'
pod 'RealmSwift'
pod 'SDWebImage'
# firebase pods
  pod 'Firebase/Analytics'
  pod 'Firebase/RemoteConfig'
  pod 'Firebase/Auth'
  pod 'FirebaseUI'
  pod 'Firebase/Database'
  pod 'Firebase/Storage'
  
# FaceBook Sign in pods
  pod 'FBSDKLoginKit'

#Google Sign in pods 
pod 'GoogleSignIn'
  
end
      

运行 pod repo update 更新您的本地数据库。

这是因为有依赖需要特定的版本。

例如,如果我们看到您的“过时”pods,除了 FBSDKLoginKit,它们不会直接列在您的 pod 文件列表中。

让我们看看你的Podfile.lock

列表是这样的:

- PodA
  - PodB

其中 PodA 需要 PodB,这是通过“缩进”。

您使用FirebaseFirestore。 我们可以看到,即使是最后一个版本 FirebaseFirestore0.20200225 需要 abseil(不是它的最后一个版本)。

您可能会说,“嘿,我没有写 pod FirebaseFireStore”,这很正常,您是间接需要它(有点像您的 Podfile.lock):

- FirebaseUI (9.0.0):
  - FirebaseUI/Firestore (= 9.0.0)
  - ...
- FirebaseUI/Firestore (9.0.0):
  - Firebase/Firestore
- FirebaseFirestore (1.19.0):
  - abseil/algorithm (= 0.20200225.0)
  - ...

您使用 FirebaseUI,需要 FirebaseUI/Firestore,需要 Firebase/Firestore 版本 1.19.0,需要 abseil 在那个版本。 看到噩梦了吗?

检查是一场噩梦,但如果需要,您可以自己进行检查,并找出阻塞某个 pod 版本的 pod。我只是举个例子。

现在,您正在构建依赖关系,因此他们需要找到一个通用版本,所有版本都可以正常工作,您真的不能有不同的版本。不然不知道该用哪个,是全变了的4.0.0版,还是1.0.0版?

也许 cocoapods-graph (not tested) or cocoapods-dependency 会给你一个更好的主意:

运行 pod repo update 更新然后 运行 pod install 并检查输出