【问题标题】:Terminal refusing to "pod update"终端拒绝“pod update”
【发布时间】:2020-10-21 13:25:30
【问题描述】:

我到处搜索,但最接近的答案在这里Can't update pods to the latest version。但是它对我不起作用,因为我没有弃用的 pod。而且我不能发表评论来询问某人我的情况,所以我提出了一个新问题。

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

# 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 update --verbose”的输出是什么?会不会是您有一个限制另一个吊舱的吊舱?就像想象有 PodB,仅与 2.0.5 版本中的 PodA 兼容?$
  • 我运行 pod outdated 查看哪些 pod 需要更新。我这样做的那一刻,这个屏幕就出现了。
  • 您是否运行了 pod update --verbose ?什么是输出/
  • 我确实运行了它,没有发现任何异常,只是一长串文件名。
  • 我刚刚注意到所有“过时”的文件都没有直接出现在您的 pod 文件中,它们是其他人的依赖项,除了 FBSDKLoginKit (但另一个人可能需要它广告特定版本,或其在该版本的依赖项之一阻止它进入该版本)。

标签: ios swift xcode terminal updates


【解决方案1】:

这是因为存在需要特定版本的依赖项。

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

让我们看看你的Podfile.lock

列表是这样的:

- PodA
  - PodB

PodA 需要PodB 的地方,就是“缩进”。

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

你可能会说,“嘿,我没有写 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,在版本1.19.0 中需要Firebase/Firestore,在该版本需要abseil。 看到噩梦了吗?

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

现在,您正在构建依赖项,因此他们需要找到一个通用版本,这一切都可以正常工作,您真的不能有不同的版本。否则我们不知道要使用哪一个,是 4.0.0 版,全部改变了,还是 1.0.0 版?

也许cocoapods-graph(未测试)或cocoapods-dependency 可能会给你一个更好的主意:

【讨论】:

  • 我刚刚检查了 podfile.lock,它确实是一场噩梦。但问题是 xcode 中有警告说某些代码(来自 pod)可能已被弃用,解决这些问题的唯一方法是当我更新 pod 的版本时,所以我不能保持原样。我相信有办法解决这个问题。
  • 不,除非你发出合并请求来更新相应 GitHub 中阻塞整体的代码,或者等待修复。您可以打开问题,或提出合并请求。
【解决方案2】:

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

【讨论】:

  • 刚刚做了,没有任何改变。
  • 你运行 pod install 了吗?
  • 刚刚添加了 podfile,对此感到抱歉。
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-30
    • 1970-01-01
    • 2021-08-02
    • 2018-07-28
    • 2016-04-25
    • 1970-01-01
    • 2016-02-02
    • 2020-04-21
    相关资源
    最近更新 更多