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 - 找不到框架 FirebaseCoreDiagnostics