无法在CocoaPods中找到规范

时间:2014-09-18 13:15:52

标签: ios objective-c ruby cocoapods

我无法理解为什么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)

解决方案:在导入子规范之前导入pod ABC并将标记添加到podspec。

19 个答案:

答案 0 :(得分:165)

我认为你的pod master repo存在问题。删除它并再次下载。

你可以这样做:

pod repo remove master
pod setup
pod install

或者:

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

答案 1 :(得分:28)

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

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

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

如果您使用的是更加模糊或自制的播客,则可能需要添加多个源链接。

答案 2 :(得分:15)

而不是:

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 }

答案 3 :(得分:7)

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

pod repo remove master
pod setup

但是,您可以直接尝试pod setup,因为有些用户指出。

答案 4 :(得分:6)

我在添加

后解决了这个问题
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位于本地路径中。

答案 5 :(得分:4)

MGBoxkit

我遇到了类似的错误
  

[!]无法找到MGBoxkit

的规范

替换以下行

pod 'MGBoxkit'

pod 'MGBoxKit'

解决了这个问题。

答案 6 :(得分:4)

更新cocoapods的主仓库。

`pod repo update master`

答案 7 :(得分:3)

确保添加了

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

在你的Podfile的最开头

答案 8 :(得分:1)

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

cocoa pod update

更新使用此命令

sudo gem install cocoapods

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

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

而不是这样做

pod repo update

答案 9 :(得分:1)

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

更换,

pod 'PodName' '~> 2.3'

使用,

pod 'PodName', '~> 2.3'

做完了。

答案 10 :(得分:0)

有同样的问题。

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

我选择卸载所有,然后gem install cocoapods:1.4.0

现在好了。

答案 11 :(得分:0)

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

pod repo删除主人
  吊舱设置
  pod安装

答案 12 :(得分:0)

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

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

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

答案 13 :(得分:0)

请遵循以下步骤:

步骤0: pod repo update master

步骤1: pod install

您完成了!

答案 14 :(得分:0)

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

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

答案 15 :(得分:0)

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

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

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

答案 16 :(得分: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 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开始工作。

答案 17 :(得分:0)

  --dirsfirst   List directories before files (-U disables).

在我的情况下解决了同样的错误。

答案 18 :(得分:-1)

对于我来说,我通过更新存储库解决了我的问题:

pod repo update
pod install