在CocoaPods中找不到规格


85

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

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

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

库Podfile中列出了此依赖项ABC:

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

ABC.podspecmyrepo / Podspecs的分支xyz中的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)

解决方案: 在导入子规格之前,先导入Pod ABC,然后将标签添加到podspec。


您收到什么错误?复制并将其粘贴到您的问题中。
安东尼

错误是Unable to find specification for 'ABC' (=1.0.0)
Gaius Augustus 2014年

Answers:


20

代替:

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哪个标签在说话。必须的。
gran33

只需将标签添加到您的最后一次提交中
gran33

1
我会试试看。不幸的是,它不在Podspec文档中。
Gaius Augustus 2014年

它没有解决问题:[!] Unable to find a specification for ABC(= 1.0.0)`
Gaius Augustus

1
我解决了问题!在导入子规格之前,我必须先导入Pod ABC。
Gaius Augustus

184

我想您的pod master仓库有问题。删除并重新下载。

你可以做:

pod repo remove master
pod setup
pod install

要么:

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

50
刚跑步pod setup就完成了这项工作。
Nagendra Rao

1
对我来说,只运行删除线首先可以解决问题!虽然花了一些时间来设置。
sinewave440hz

2
哇!这个。由于某种原因,我的Spec主存储库未正确设置,因此我必须以这种方式将其删除,然后进行设置和安装。谢谢你!
praneetloke

1
“ pod设置”花了相当长的时间,但我只需要(如Rao所述)
Chris Allinson

3
可能pod repo update && pod setup要先尝试-如果您的存储库只是缺少规格,这可能会解决它,并且比从头开始重新克隆整个存储库要快。
艾略特

35

对我而言,查找规范是一个问题,而不是规范本身。我需要将源链接添加到Podfile,请参见Podfile文档

Cocoapods最近增加了需要链接到包含您要查找的Pod规范文件的回购的需求,默认值为:

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

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


1
这不是必须的(至少不是最新版本的),因为我不需要添加源链接,并且在遵循Gastón的建议之后一切都很好。
sinewave440hz

@ sinewave440hz,当您需要访问非标准私有存储.git库时,最常使用源代码。默认来源为public。
ScottyBlades

我明白了,谢谢(不是我记得自己写过任何东西,但是我相信它会帮助某人的地方:D)
sinewave440hz

7

添加后我解决了这个问题

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 在本地路径中。


源'/ Users / username / Documents / path / to / iOS_SpecsRepository'工作,您知道为什么我必须使用本地源路径吗?
gabbler '18

在我看来,因为每个设备需要一个podspec本地资源库
ZIPPO

7

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

pod repo remove master
pod setup

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




4

我在MGBoxkit中遇到了类似的错误

[!]找不到规格 MGBoxkit

通过替换以下行

pod 'MGBoxkit'

pod 'MGBoxKit'

解决了这个问题。


有什么不同?
Gargo

错字为k用K.替换
zeeawan

2

首先,您需要将Podspec添加到私有规范存储库中;这样,当您尝试安装Pod时,CocoaPods便可以找到它。

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

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


1

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

可可豆更新

要更新,请使用此命令

须藤宝石安装cocoapods

如果以上命令给出错误而不是使用此命令

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

比这更重要

吊舱回购更新


1

对我来说,下面的命令运行良好,但是首先可以尝试直接使用“ pod setup”命令。如果这样不起作用,那么使用下面的命令肯定会使事情发生。

吊舱回购删除主
吊舱设置
吊舱安装


这与@gastón-antonio-montes的答案有何不同?
狮子座

1

请按照以下步骤操作:

步骤0: pod repo update master

步骤1: pod install

您完成了!




0

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

例如:- Firebaseresulrereres/Analytics。本来应该是这样,Firebase/Analytics但据我所知,豆荚名称的拼写错误如Firebaseresulrereres/Analytics

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


0

我在与所有公共仓库打交道。我收到类似的错误:

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的仓库主库解决了该问题。

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

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

 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开始工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.