无法在 CocoaPods 中找到规范

Posted

技术标签:

【中文标题】无法在 CocoaPods 中找到规范【英文标题】:Unable to find a specification in 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) 【参考方案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://***.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

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

【讨论】:

以上是关于无法在 CocoaPods 中找到规范的主要内容,如果未能解决你的问题,请参考以下文章

CocoaPods安装步骤

无法在 CocoaPods 中安装 React 子规范

无法在 CocoaPods 网站上扩展 Cocoapod

Cocoapods 1.11 来了!!!

实战 | 一次哭笑不得的 COCOAPODS 解坑之旅

Cocoapods:无法设置 pod 构建设置