无法在 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 clean
和flutter 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 中找到规范的主要内容,如果未能解决你的问题,请参考以下文章