【问题标题】:Unable to find a specification in CocoaPods无法在 CocoaPods 中找到规范
【发布时间】:2014-11-12 20:34:06
【问题描述】:

我不明白为什么 Cocoapod 找不到我在运行 pod install 时创建的 pod 规范。有人可以帮我解决这个问题吗?

我在我的库 podspec 文件中定义一个子规范,如下所示:

s.subspec 'mysubspec' do |c|
  c.dependency 'ABC','1.0.0'
end 

这个依赖 ABC 列在 Podfile 库中:

pod 'ABC', :git => 'git@github.com:myrepo/Podspecs.git', :branch => 'xyz'

myrepo/Podspecs 的 xyz 分支中的 Podspec 文件 ABC.podspec 看起来像这样:

Pod::Spec.new do |s|
  s.name         = "ABC"
  s.version      = "1.0.0"
  s.source       = { :git => "git@github.com:myrepo/Podspecs.git", :branch => "xyz" }
end

错误是[!] Unable to find a specification for ABC (= 1.0.0)

解决方法:在导入subspec之前先导入pod ABC,并在podspec中添加tag。

【问题讨论】:

  • 您收到的错误是什么?将其复制并粘贴到您的问题中。
  • 错误是Unable to find specification for 'ABC' (=1.0.0)

标签: ios objective-c ruby cocoapods


【解决方案1】:

我认为您的 pod 主存储库有问题。删除后重新下载。

你可以这样做:

pod repo remove master
pod setup
pod install

或者:

sudo rm -fr ~/.cocoapods/repos/master
pod setup
pod install

【讨论】:

  • 刚刚运行 pod setup 就完成了。
  • 对我来说,只有先运行删除行才能解决问题!不过设置需要一些时间。
  • 哇!这。由于某种原因,我的 Spec 主存储库未正确设置,我不得不以这种方式将其删除,然后进行设置和安装。谢谢!
  • 'pod setup' 花了很长时间,但这是我所需要的(正如 Rao 提到的)
  • 可能想先尝试pod repo update && pod setup - 如果您的仓库只是缺少规范,这可能会修复它,并且比从头开始重新克隆整个仓库要快。
【解决方案2】:

对我来说,找到规范是一个问题,而不是规范本身。我需要在 Podfile 中添加源链接,请参阅 Podfile documentation

Cocoapods 最近添加了需要链接到包含你要查找的 pod spec 文件的 repo,默认为:

source 'https://github.com/CocoaPods/Specs.git'

如果您使用更晦涩或自制的 pod,则可能需要添加多个源链接。

【讨论】:

  • 这不是必需的(至少在最新版本中不是),因为我不需要添加源链接,并且在遵循 Gastón 的建议后一切正常。
  • @sinewave440hz,当您需要访问非标准私有.git repo 时,最常使用添加源。默认来源是公开的。
  • 我明白了,谢谢(不是我记得写过这些,但我相信它会帮助某个地方的人:D)
【解决方案3】:

代替:

s.source       = { :git => "git@github.com:myrepo/Podspecs.git", :branch => "xyz" }

这样写: 不要忘记标签...

s.source       = { :git => "https://github.com/myrepo/Podspecs.git", :branch => "xyz",
                   :tag => s.version.to_s }

【讨论】:

  • 你必须告诉 pod 你在说哪个标签。这是必须的。
  • 简单地,在你的最后一次提交中添加标签
  • 我会试试的。不幸的是,它不在 Podspec 文档中。
  • 没有解决问题:[!] Unable to find a specification for ABC (= 1.0.0)`
  • 我解决了这个问题!在导入 subspec 之前,我必须先导入 pod ABC。
【解决方案4】:

确保你添加了

source 'https://github.com/CocoaPods/Specs.git'

在 Podfile 的开头

【讨论】:

  • 如果您想添加私有 pod,这一点尤其重要。
【解决方案5】:

我在添加后解决了这个问题

source '/Users/username/Documents/path/to/iOS_SpecsRepository'
source 'https://github.com/CocoaPods/Specs.git'

到 Podfile。 好吧。我使用本地存储库作为我的存储库。所以我可以在另一个 podspec 文件中使用它

s.dependency 'iOS_Networking_CPN', '~> 0.1.1'

iOS_Networking_CPN 在本地路径中。

【讨论】:

  • source '/Users/username/Documents/path/to/iOS_SpecsRepository' 工作,你知道为什么我必须使用本地源路径吗?
  • 在我看来,因为每个设备都需要一个本地存储库来存放 podspec
【解决方案6】:

对我来说,这就像一个魅力。

pod repo remove master
pod setup

但是,您可以直接尝试,pod setup 正如一些用户指出的那样。

【讨论】:

    【解决方案7】:

    MGBoxkit

    我遇到了类似的错误

    [!] 找不到 MGBoxkit 的规范

    通过替换以下行

    pod 'MGBoxkit'
    

    pod 'MGBoxKit'
    

    修复了问题。

    【讨论】:

    • 有什么区别?
    • K 的错字被替换为 K。
    【解决方案8】:

    更新 cocoapods 的主存储库。

    pod repo update master
    

    【讨论】:

      【解决方案9】:

      您首先需要将您的 Podspec 添加到私有规范存储库;这可以让 CocoaPods 在您尝试安装它时找到它。

      在终端中输入以下内容,确保您仍在尝试添加的框架目录中:

      pod repo add [your framework name] [Your framework Git URL]
      pod repo push [your framework name] [your framework .podspec file name]
      

      【讨论】:

      • 当 Pod 托管在 trunk 时感觉不真实
      【解决方案10】:

      我错过了添加 , 导致问题。

      更换,

      pod 'PodName' '~> 2.3'
      

      与,

      pod 'PodName', '~> 2.3'
      

      完成了任务。

      【讨论】:

        【解决方案11】:

        我用下面的命令解决了我的问题:

        可可豆荚更新

        要更新使用这个命令

        sudo gem install cocoapods

        如果上面的命令给出错误而不是使用这个

        sudo gem install -n /usr/local/bin cocoapods

        比这样做

        pod 存储库更新

        【讨论】:

          【解决方案12】:

          我在所有公共回购中都在颤抖。我遇到了类似的错误:

          Unable to find a specification for `TOCropViewController (~> 2.5.2)` depended upon by `image_cropper`
          

          由于某种原因,TOCropViewController 规范不可用。我尝试了以下方法:

          flutter clean
          rm -Rf ios/Pods
          rm -Rf ios/.symlinks
          rm -Rf ios/Flutter/Flutter.framework
          rm -Rf ios/Flutter/Flutter.podspec
          rm ios/Podfile
          flutter run
          

          但插件规范仍然不可用。最后,我通过删除 pod 的 repo master 解决了这个问题。

          pod repo remove master
          sudo rm -rf ~/.cocoapods/repos
          pod setup
          pod install
          

          为了验证和确认插件在这里,我在.cocoapods 中尝试了grep,使用:

           grep -r "TOCropViewController" -n ~/.cocoapods
          

          内部~/.cocoapods/repos/trunk/Specs/3/7/4/TOCropViewController/2.5.2/TOCropViewController.podspec.json

          我找到了插件的 git repo 和正确的版本号。

            "source": {
              "git": "https://github.com/TimOliver/TOCropViewController.git",
              "tag": "2.5.2"
            },
          

          之后flutter cleanflutter run 开始工作。

          【讨论】:

            【解决方案13】:

            有同样的问题。

            真正对我有用的是gem uninstall cocoapods(如上所述https://stackoverflow.com/users/4264880/seema-sharma),我发现我安装了11(!)个不同的cocoapods版本。

            我选择全部卸载然后gem install cocoapods:1.4.0

            现在一切都好。

            【讨论】:

              【解决方案14】:

              对我来说,下面的工作很好,但第一次尝试可以是直接的“pod setup”命令如果这不起作用,那么去下面的命令肯定会让事情发生。

              pod repo 删除 master
              吊舱设置
              吊舱安装

              【讨论】:

              • 这与@gastón-antonio-montes 的answer 有何不同?
              【解决方案15】:

              按照以下步骤:

              第 0 步: pod repo update master

              第 1 步: pod install

              你就完成了!

              【讨论】:

                【解决方案16】:

                请改用 tis。 Using private pod and public pod in the same project

                在 podfile 的开头添加私有和公共(官方)的源。

                【讨论】:

                  【解决方案17】:

                  没有一个答案对我有帮助。最终,我发现其中一个 Pod 有一个拼写错误

                  例如:- Firebaseresulrereres/Analytics。它应该是 Firebase/Analytics,但在我不知情的情况下,pod 名称的拼写错误,例如 Firebaseresulrereres/Analytics

                  更正 Pod 名称对我有用!。我花了 1 个小时才找到这个!开发有时会模棱两可且令人沮丧! :)

                  【讨论】:

                    【解决方案18】:
                    pod update
                    

                    在我的案例中解决了同样的错误。

                    【讨论】:

                      猜你喜欢
                      • 2017-03-19
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2017-02-27
                      • 2016-12-23
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多