Cocoapods - 找不到 [Github 框架] 的规范

Posted

技术标签:

【中文标题】Cocoapods - 找不到 [Github 框架] 的规范【英文标题】:Cocoapods - Unable to find a Specification for [Github framework] 【发布时间】:2015-03-03 23:26:23 【问题描述】:

当尝试将新的Podfile pod install 插入现有 Xcode (ios) 项目时,我从终端收到以下错误消息:[!] Unable to find a specification for 'XCDYouTubeKit (~> 2.1.1)'。我尝试加载的 Podfile 如下所示:

# Uncomment this line to define a global platform for your project
# platform :ios, '6.0'

target 'DemoApp' do

pod 'XCDYouTubeKit', '~> 2.1.1'

end

target 'DemoAppTests' do

end

target 'TheDayByDay' do

end

另外,我的Xcode项目的文件结构如下:

DemoApp
     Podfile (file)
     Pods (directory)
     DemoApp (directory)
     DemoApp.xcodeproj (file)
     DemoAppTests (directory)

这个安装不工作怎么办?我哪里错了?我正在运行 Cocoapods 0.35.0。我错过了pod spec 文件吗?我不明白它是什么,也不明白这种文件的文件结构是什么样的。

【问题讨论】:

您可以尝试运行pod repo update 看看这个错误是否消失了吗?否则删除~/.cocoapods,然后运行pod setup @KeithSmiley pod repo update 不起作用,但我为什么要删除 ~/.cocoapods?那不就是整个 cocoa pods 安装库吗?这有什么帮助? @KeithSmiley pod repo update 实际上对我有用。它更新了我计算机中的大量其他存储库,您能解释一下为什么会这样吗? 【参考方案1】:

引用您在 cmets 中的对话,您需要执行 sudo rm -fr ~/.cocoapods/repos/master,因为它会删除您计算机中的所有虚假和损坏的存储库,以便在您重做 pod setup 后有机会重新填充它,这将通过新的 Cocoapods 设置恢复您的状态。此外,您需要指定 sudo xcode-select --switch /applications/Xcode.app 新版本的 Xcode 所在的位置。这只是我完成修复所必须执行的另一个设置过程。从那里,只需执行 pod setup 即可运行 pod install 以集成您想要的所有库!

【讨论】:

您不需要sudo。感谢您的解释! 这解决了我在中断“pod 更新”过程时遇到的问题,并且开始收到相同的错误消息。 +1! 确实回答了您自己的问题,或者您是否巧合地与提问者同名?大声笑【参考方案2】:

你也可以这样设置:

pod 'yourpodframework', :git => 'https://github.com/username/yourpodframework'

【讨论】:

为什么我们需要添加源路径才能让 pod 工作,可能是什么原因导致某些 pod 仅通过 - pod 'podname' 工作,而有些则需要上述其他方式。 这是因为只需要 podname 的 pod 部署在公共 podspec 存储库中,而另一个部署在私有 podspec 存储库中。所以你需要指定路径。 您能否提供任何链接以供参考我们如何配置它。我已经上传了我的 github 库,并指定了完整路径以使其正常工作。【参考方案3】:

我遇到了同样的问题。 但我必须通过以下程序解决我的问题。

   source 'https://github.com/CocoaPods/Specs.git'
    platform :ios, '9.0'

    target 'Test' do

      use_frameworks!

#    pod 'Alamofire', '~> 4.0'
     pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git'

#    pod 'SwiftyJSON' , '~> 3.1'
     pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git'

#     pod 'SideMenu' '~> 2.0'
      pod 'SideMenu', :git => 'https://github.com/jonkykong/SideMenu.git'

#     pod 'SDWebImage', '4.0.0-beta2'
      pod 'SDWebImage', :git => 'https://github.com/rs/SDWebImage.git'

#     pod 'SwiftDate', '~> 4.0'
      pod 'SwiftDate', :git => 'https://github.com/malcommac/SwiftDate'



end

post_install do |installer|
    installer.pods_project.targets.each do |target|
      target.build_configurations.each do |config|
        config.build_settings['SWIFT_VERSION'] = '3.0'
     end
    end
  end

Links for more information

【讨论】:

这为我修好了,谢谢!!我不清楚为什么它会被击中或错过。有些只使用您注释掉的行就可以正常工作,而另一些则需要 git 参考。【参考方案4】:

我将把它放在这里以供将来参考: 在我的情况下,问题是一个错误的 podspec,其语法问题已被推送到远程。 Podfile 包含对特定 github 提交的引用。 显然在这种情况下 CocoaPods 给出了关于“缺少 podspec”的非常无用的错误消息,尽管 podspec 肯定存在,只是拙劣。

解决方案:下载 podspec 文件(例如通过克隆整个 pod 的 repo)并运行 pod spec lint

或者:在本地克隆 pod 并将 Podfile 引用更改为本地路径。在这种情况下执行pod install 将显示更有用的错误消息。像这样:

[!] Invalid `<some>.podspec` file: syntax error, unexpected tCONSTANT, expecting keyword_end
...eGraphics', 'QuartzCore, 'IOKit', 'XCTest'

如您所见,在我的情况下,这是 QuartzCore 之后缺少的引用

【讨论】:

以上是关于Cocoapods - 找不到 [Github 框架] 的规范的主要内容,如果未能解决你的问题,请参考以下文章

错误:ld:找不到带有 CocoaPods 的 -lPods 的库

CocoaPods 找不到 pod“FirebaseCore”的兼容版本:在快照中 (Podfile.lock)

cocoapods - ld:找不到框架

Cocoapods - 找不到框架 FirebaseCoreDiagnostics

Cocoapods:找不到“Firebase/Core”的规范

使用 cocoapods 时找不到 Mantle/Mantle.h' 文件