【问题标题】:cocoapods - 'pod install' takes forevercocoapods - 'pod install' 需要永远
【发布时间】:2014-07-08 11:44:35
【问题描述】:

我尝试使用 pod install 命令更新现有的 pod,但它需要很长时间才能运行。

详细模式显示它被卡在下一行(永远)

更新规范库master

$ /usr/bin/git pull --no-rebase --no-commit

卡住后没有网络活动。

【问题讨论】:

  • 卡住90分钟后,pod install进入下一阶段。我想我不是很有耐心。
  • 运行 pod install --verbose 以查看更多调试信息。一般情况是 git 更新耗时过长。如果您不需要更新,请运行 pod install --no-repo-update
  • 说明 pod 的质量。那些家伙需要尽快解决这个问题。每次我必须处理 pod 时,我都会陷入困境。
  • @HaiFengKao,我很担心,因为我的网络不好。我跟踪了一下,下载了大约350MB。感谢链接,我认为 cocoapods 需要自己的服务器。
  • 5 年后仍然同样缓慢。大文件每秒 20k。可笑。

标签: ios command cocoapods repo pod-install


【解决方案1】:

调查了半天为什么Analyzing Dependencies 需要永远,我发现我正在安装最新的Firebase pod (7.1.0),它依赖于GoogleAppMeasurement 7.1.0 版,并且那里是另一个 pod,它是一个广告中介框架,其中包括 Google-Mobile-Ads-SDK。此 SDK 依赖于低得多的 GoogleAppMeasurement ~ 6.0 版本。 我可以通过从广告中介中注释掉冲突的 pod 来安装 pod。 像这样的:

# Ad network framework
  pod 'SomeMediationNetwork/Core'
#  pod 'SomeMediationNetwork/GoogleMobileAds' # - the conflicting pod
  pod 'SomeMediationNetwork/Facebook'
  pod 'SomeMediationNetwork/SmartAdServer'
  pod 'SomeMediationNetwork/Mopub'

我不得不联系广告中介库发布商来解决此问题,很可能是通过更新到最新的 Google-Mobile-Ads-SDK pod 并发布新版本。

我希望这篇文章可以帮助其他一些正在努力的人

【讨论】:

    【解决方案2】:

    找到下载 cocoapods 的另一种方法是下载可用的快照之一here。它有点旧,但 .bz2 压缩文件的下载速度要快得多。下载后,我将其复制到~/.cocoapods/repos/,然后使用bzip2 -dk *.bz2 解压缩。

    解压缩需要一段时间,一旦完成,我将新解压缩文件的扩展名更改为 .tar 并使用tar xvf *.tar 进行解压缩。这将显示正在创建的文件列表,并且还需要一些时间。

    最后,当我在项目文件夹中运行 pod repo list 时,它显示主文件夹已添加为存储库。因为我仍然不断收到无法找到我正在寻找的 pod 的规范的错误,所以我转到主文件夹并执行git fetch,然后执行git merge。 git fetch 耗时最长,大约一个小时,速度为 50 KB/s。我使用 fetch 和 merge 而不是 pull,因为我遇到了问题,即fatal: the remote end hung up unexpectedly。它现在是最新的,我能够得到我想要的 pod。

    【讨论】:

      【解决方案3】:

      11.2019 中的解决方案

      您好,我尝试了很多东西,但没有任何效果。尝试连接到这个站点https://cdn.cocoapods.org/,如果你不能,就使用 VPN 并做pod install 等。不要忘记使用--verbose 来了解正在发生的事情。

      【讨论】:

        【解决方案4】:

        2019 年的更新答案 - cocoa pods 团队转而使用他们自己的 CDN 解决了​​这个问题,这是由于 GitHub 速率限制,如下所述:https://blog.cocoapods.org/CocoaPods-1.7.2/

        TL;DR 您需要将Podfile 中的源代码行更改为:

        source 'https://cdn.cocoapods.org/'
        

        【讨论】:

        • 这是 2019 年的正确答案。如果只能更改已接受的答案...
        • 是的,这个答案也是截至 2020 年 6 月的正确答案
        • 这对我没有任何影响。
        • 来自 Cocoapods 1.8,它是默认值 - 所以对我来说,删除导致 GitHub 回退到默认值的源是有帮助的(在这个答案 cdn.cocoapods.org 中提到)。它减少了超过 15 分钟的更新时间
        • 是的 - 这也是我的解决方案......
        【解决方案5】:

        这对我有用:

        1. 删除~/.CocoaPods下的所有内容
        2. 删除现有的Podfile.lockPods 文件夹。
        3. 保持您的 PodFile 完好无损。
        4. 运行sudo gem install cocoapods --verbose
        5. 运行pod install --verbose

        我建议使用 --verbose 标志,因为终端在执行命令操作时效果不佳。详细选项有很大帮助!

        【讨论】:

        • 请注意 ~/.cocoapods 的主仓库非常大(~1GB),因此删除并重新安装它需要很长时间。如果我意识到这一点,我会在删除主仓库之前尝试pod install --verbose
        【解决方案6】:

        你可以跑

        pod install --verbose 
        

        看看幕后发生了什么......至少你会知道它卡在哪里(它可能是一个 git clone 操作,由于你的网络速度太慢等而花费了太长时间)

        更好地了解为什么它似乎被卡住了(运行详细可以让你得到这样的结果

        -> Installing Typhoon (2.2.1)
         > GitHub download
         > Creating cache git repo (~/Library/Caches/CocoaPods/GitHub/0363445acc1ed036ea1f162b4d8d143134f53b92)
         > Cloning to Pods folder
               $ /usr/bin/git clone https://github.com/typhoon-framework/Typhoon.git ~/Library/Caches/CocoaPods/GitHub/0363445acc1ed036ea1f162b4d8d143134f53b92 --mirror
               Cloning into bare repository '~/Library/Caches/CocoaPods/GitHub/0363445acc1ed036ea1f162b4d8d143134f53b92'...
        

        是找出你正在克隆的 git repo 的大小。如果你是从 github 克隆的。你可以使用这个format

        /repos/:user/:repo
        

        所以,例如,找出上面的repo类型

        https://api.github.com/repos/typhoon-framework/Typhoon
        

        并且返回的 JSON 将有一个大小键值。所以上面返回了

        "size": 94014,
        

        大约 90mb。难怪它需要永远! (顺便说一句..当我写这篇文章的时候..它刚刚完成..哈!)


        更新: 可可豆荚在开始下载您的 podfile 中列出的依赖项之前做的一件常见事情是下载/更新自己的 repo(他们称之为Setting up Cocoapods Master repo.. 看看这个:

        pod install --verbose
        
        Analyzing dependencies
        
        Updating spec repositories
          $ /usr/bin/git rev-parse  >/dev/null 2>&1
          $ /usr/bin/git ls-remote
          From https://github.com/CocoaPods/Specs.git
          09b0e7431ab82063d467296904a85d72ed40cd73  HEAD
          ..
        

        坏消息是,如果您按照上述程序找出可可豆仓库有多大.. 您将得到 this: "size": 614373,.. 很多。

        因此,为了更准确地了解安装您自己的 repo 需要多长时间。您可以使用 pod setup 单独设置 cocoa pods master repo:

        $ pod help setup
        Usage:
        
        $ pod setup
        
          Creates a directory at `~/.cocoapods/repos` which will hold your spec-repos.
          This is where it will create a clone of the public `master` spec-repo from:
        
              https://github.com/CocoaPods/Specs
        
          If the clone already exists, it will ensure that it is up-to-date.
        

        然后运行pod install

        【讨论】:

        • 这是我见过的唯一对“WTF”可可足类“达到”...的连贯描述。跨度>
        • 主 repo 的下载花了我 20 分钟盯着一个闪烁的光标(我只有 150Mb 的互联网连接和一个糟糕的 macbook pro Retina i7)
        • specs 目录中有 17,000 多个文件/目录。无论他们在那里做什么,这都不是对 git 最友好的方法。
        • 当我运行这个命令时,我的 cocoapods 告诉我它已经完成了。与它的安装。谢谢!
        • 大部分时间是关于一个需要大量时间下载的大依赖项
        【解决方案7】:

        我有同样的问题。运行后

        pod install
        Setting up CocoaPods master repo
        

        iterm2 卡在设置 CocoaPods 上。

        我通过运行解决了这个问题

        sudo gem install CocoaPods
        

        这在CocoaPods website中有提到

        【讨论】:

          【解决方案8】:

          我也是这么想的。如果你打开Activity Monitor,你可以看到它正在那里以GIT的名义下载东西。

          我发现这个技巧很有用。

          https://stackoverflow.com/a/21916507/563735

          【讨论】:

            【解决方案9】:

            正如其他答案中提到的,这需要很长时间,因为 cocoapods 主仓库的大小很大。可以使用以下步骤减少此时间。

            1) 在您的 github 存储库上创建一个私有规范文件路径。在您的 podfile 中提供此路径 https://github.com/yourpathForspecs.git' 作为源。

            2) 识别您需要的所有存储库及其依赖项(在这些存储库的 cocoapods 上的 podspec.json 文件中提到)并从 cocoapods 获取它们的 podspec.json 文件。在此规范存储库中添加这些 podspec.json 文件及其文件夹(例如螺栓的最新版本文件夹)。

            3) 删除 podfile 中的源 'https://github.com/CocoaPods/Specs.git'

            4) 吊舱更新

            这将花费更少的时间,因为这需要仅获取和下载您需要的 pod,而不是整个 cocoapods 存储库。 在我的情况下,它将 pod 更新时间从平均 15-20 分钟减少到最多 3-4 分钟。

            【讨论】:

              【解决方案10】:

              截至 2016 年 8 月 15 日,该存储库是一个 2.39GB 的大型文件。我打开活动监视器来查看终端在做什么。它正在下载这个巨大的文件。

              【讨论】:

                【解决方案11】:

                只需一步一步完成以下操作:

                下载https://github.com/CocoaPods/Specs/archive/master.zip

                在终端中运行以下命令:

                pod setup --verbose

                在终端打开新标签并运行

                mv ~/.cocoapods/repos/master/.git ~/tempSpecsGitFolder

                打开master.zip(解压)

                mv Specs-master ~/.cocoapods/repos/master

                mv ~/tempSpecsGitFolder ~/.cocoapods/repos/master/.git

                cd [项目文件夹]

                pod install --no-repo-update

                【讨论】:

                  【解决方案12】:

                  我找到了解决问题的另一种方法

                  pod install --verbose --no-repo-update

                  它对我有用。

                  【讨论】:

                  • 第一次还是要克隆。
                  【解决方案13】:

                  尝试清除您的 CocoaPods 缓存,按照 here 所述重新下载并重新安装所有 pods

                  rm -rf "${HOME}/Library/Caches/CocoaPods"
                  
                  rm -rf "\`pwd\`/Pods/"
                  
                  pod update
                  

                  【讨论】:

                    【解决方案14】:

                    有时也发生在我身上,我只是:

                    pod clean
                    pod update --verbose
                    

                    【讨论】:

                      【解决方案15】:

                      可能的解决方案:

                      1. 更新 Cocoa Pod 可能会解决此问题
                      2. 再次清洁和全新安装 pod

                      更新 CocoaPods

                      打开终端并输入:

                      $ sudo gem update cocoapods
                      

                      重新安装 Pod

                      步骤 1

                      从您的项目中删除所有 pod(棘手的部分):

                      手动

                      1. 删除项目构建阶段上的所有 Pod 记录(标记为红色)

                      1. 删除 Frameworks 文件夹下的 libPods.a

                      1. 现在前往项目目录并删除 Podfile.lock*、**Pods 文件夹和 Workspace(也从 Trash 中删除)。

                      自动使用CocoaPods De-Integrate

                      安装

                      $ [sudo] gem install cocoapods-deintegrate
                      

                      运行

                      $ pod deintegrate
                      

                      第二步

                      我们在这里再次安装 Pod

                      更改您的位置您的目录

                      $ cd yourprojectdirectory
                      

                      编辑 podfile 添加你需要的行

                      $ open -a Xcode podfile 
                      

                      $ nano podfile
                      

                      终于再次安装 pod

                      $ pod install
                      

                      希望对你有帮助

                      【讨论】:

                      • 没用。刚刚重新安装了 cocoapods,pod init 和 pod install 永远挂起
                      • @woens 这取决于您要获取的库。你也可以试试这个tool,它会从项目中取消集成 Pod,然后再次运行安装
                      • 没有!这就是重点。当您从 init 开始,然后安装在一个空项目上时会发生这种情况。
                      • @woens 你说没有是什么意思?根本没有 pod 时安装 pod 的意义在哪里(如果我理解正确的话)?
                      • 刚开始一个空项目,准备以后添加东西。所以:创建一个 xcode 项目,运行 pod init,运行 pod install。此时 pod install 挂起。
                      【解决方案16】:

                      我这样解决了这个问题:

                      rm -fr ~/Library/Caches/CocoaPods && \
                      gem update --system && \
                      gem update && \
                      gem cleanup && \
                      pod setup
                      

                      参考:http://blog.cocoapods.org/Repairing-Our-Broken-Specs-Repository/

                      【讨论】:

                      • 我的pod setup 一直持续,30 分钟后我中止了。我只是按照这个程序操作,git clone 现在在大约 5 分钟后完成。
                      【解决方案17】:

                      我遇到了同样的问题,然后我意识到我仍在“非常糟糕的网络”上运行网络调节器。关闭它可以解决问题。

                      希望对某人有所帮助。

                      【讨论】:

                        【解决方案18】:

                        我遇到了同样的问题,我通过运行here给出的以下命令解决了这个问题

                        pod repo remove master
                        pod setup
                        pod install
                        

                        【讨论】:

                        • cocoapods - 'pod repo remove master' 需要很长时间。需要创建新线程吗? :)
                        • 谢谢,它对我有用。你也可以添加 --verbose 来显示详细的调试信息
                        • @dmitrynikolaev 起初我认为 pod repo remove master 也需要很长时间。但事实证明我只需要再等几分钟。您需要的时间可能会有所不同,因为我不知道您的 pod 配置,但请给它更多时间。
                        • 最好为给定的解决方案添加解释以使其清晰。
                        • 即使 pod setup 卡在下面,$ /usr/bin/git clone github.com/CocoaPods/Specs.git master 克隆到 'master'... 你可以跳过 pod setup 而不是“转到 ~/.cocoapods/repos并运行 'git clone github.com/CocoaPods/Specs.gitmaster'
                        【解决方案19】:

                        正如这里指出的git-remote-http process running in background。我从 Activity Monitor 进入这个进程并退出这个进程恢复了在 POD INSTALL 之后卡在“更新本地规范存储库”的 pod 进程

                        【讨论】:

                          猜你喜欢
                          • 2014-02-24
                          • 2021-03-17
                          • 1970-01-01
                          • 1970-01-01
                          • 2022-12-10
                          • 2013-12-08
                          • 1970-01-01
                          • 2015-08-13
                          • 2013-11-26
                          相关资源
                          最近更新 更多