Cocoapods:无法找到所依赖的规范

我试图使用私有存储库来分解更大的应用程序。 我遵循了以下指南:

  • http://www.objectpartners.com/2014/06/25/developing-private-in-house-libraries-with-cocoapods/
  • http://guides.cocoapods.org/making/private-cocoapods.html
  • 如何在另一个pod .podspec中添加私有CocoaPod作为依赖项 (类似但不同的问题)

我创建了一个本地存储库来包含规范,通过cocoapods发布

pod remote add MySpecs ~/local/path/to/MySpecs.git

通过查看~/.cocoapods/repos/MySpecs的内容validation了cocoapods看到了它们

我在PrivateClientSpec引用了PrivateClientSpec ,如下所示:

s.dependency 'PrivateSpec' '~> 0.1.0'

问题是当我尝试lint这个PrivateClientSpec ,我得到了名义错误:

Unable to find a specification for [PrivateSpec] depended upon by [PrivateClientSpec]

我错过了什么吗? 据我所知,这是受支持的行为。 我正在使用cocoapods v0.35。

谢谢!

原因是pod spec linter仅检查主规格,因此无法找到您的私有规格。

你需要使用--sources选项,如下所示:

 pod spec lint --sources='git@our-private-spec-repo:iOS/Specs.git,https://github.com/CocoaPods/Specs' 

两件事两说:

  • 您的私人规格需要在线,无法检查本地规格
  • 如果您依赖其他pod,您还需要为其Spec repo添加URL,这就是为什么在示例中我们也有https://github.com/CocoaPods/Specs 。

通过运行pod spec lint --help您可以阅读有关此选项的更多信息:

 --sources=https://github.com/artsy/Specs The sources from which to pull dependant pods (defaults to https://github.com/CocoaPods/Specs.git). Multiple sources must be comma-delimited. 

更多关于这里和这里

为了使pod install正常工作,我仍然需要添加:

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

..到pod文件(不是podspec)。

摆脱:

无法找到[PrivateClientSpec]所依赖的[Pri​​vateSpec]规范

然后如果你也没有像这样安装错误

 pod install --verbose Preparing Re-creating CocoaPods due to major version update. - Running source provider hooks https://github.com/CocoaPods/Specs.git  source_url  Analyzing dependencies Inspecting targets to integrate Using `ARCHS` setting to build architectures of target `Pods-YourTarget`: (``) Finding Podfile changes XXXXXXXXXXXXXXX Resolving dependencies of `Podfile` ――― MARKDOWN TEMPLATE ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ### Command ``` /usr/local/bin/pod install --verbose ``` ### Report * What did you do? * What did you expect to happen? * What happened instead? ### Stack ``` CocoaPods : 1.1.1 Ruby : ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16] RubyGems : 2.6.10 Host : Mac OS X 10.12.4 (16E195) Xcode : 8.3.2 (8E2002) Git : git version 2.11.0 (Apple Git-81) Ruby lib dir : /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib Repositories : alibaba-specs - @ fatal: Not a git repository (or any of the parent directories): .git aliyun - git@github.com:aliyun/aliyun-specs.git @ 7406176b51b4d4f8f323a39f4d96a3857229805d aliyun-1 -  @ 7406176b51b4d4f8f323a39f4d96a3857229805d master - https://github.com/CocoaPods/Specs.git @ 86c330635113e7fc290fdebad4ba3ed0dca2daee taobao-baichuansdk-alibcspecs - http://repo.baichuan-ios.taobao.com/baichuanSDK/AliBCSpecs.git @ e8cb2ae2ee7f44582923e4fae29243d6225fa8ee ``` ### Plugins ``` cocoapods-deintegrate : 1.0.1 cocoapods-plugins : 1.0.0 cocoapods-repo-alirsync : 1.0.4 cocoapods-repo-rsync : 1.0.4 cocoapods-search : 1.0.0 cocoapods-stats : 1.0.0 cocoapods-trunk : 1.2.0 cocoapods-try : 1.1.0 ``` ### Podfile ```ruby # Uncomment this line to define a global platform for your project # platform :ios, '8.0' # Uncomment this line if you're using Swift # use_frameworks! source 'https://github.com/CocoaPods/Specs.git' source '' target 'YourTarget' do pod 'AlicloudFeedback', '~> 3.0.1' end ``` ### Error ``` RuntimeError - Cannot initialize an aggregate with a nil source: ([nil]) /Library/Ruby/Gems/2.0.0/gems/cocoapods-core-1.1.1/lib/cocoapods-core/source/aggregate.rb:13:in `initialize' /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/resolver.rb:356:in `new' /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/resolver.rb:356:in `aggregate_for_dependency' /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/resolver.rb:347:in `create_set_from_sources' /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/resolver.rb:317:in `find_cached_set' /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/resolver.rb:290:in `specifications_for_dependency' /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/resolver.rb:108:in `search_for' /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/resolver.rb:206:in `block in sort_dependencies' /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/resolver.rb:200:in `each' /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/resolver.rb:200:in `sort_by' /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/resolver.rb:200:in `sort_dependencies' /Library/Ruby/Gems/2.0.0/gems/molinillo-0.5.7/lib/molinillo/delegates/specification_provider.rb:52:in `block in sort_dependencies' /Library/Ruby/Gems/2.0.0/gems/molinillo-0.5.7/lib/molinillo/delegates/specification_provider.rb:69:in `with_no_such_dependency_error_handling' /Library/Ruby/Gems/2.0.0/gems/molinillo-0.5.7/lib/molinillo/delegates/specification_provider.rb:51:in `sort_dependencies' /Library/Ruby/Gems/2.0.0/gems/molinillo-0.5.7/lib/molinillo/resolution.rb:165:in `initial_state' /Library/Ruby/Gems/2.0.0/gems/molinillo-0.5.7/lib/molinillo/resolution.rb:106:in `start_resolution' /Library/Ruby/Gems/2.0.0/gems/molinillo-0.5.7/lib/molinillo/resolution.rb:64:in `resolve' /Library/Ruby/Gems/2.0.0/gems/molinillo-0.5.7/lib/molinillo/resolver.rb:42:in `resolve' /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/resolver.rb:62:in `resolve' /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/installer/analyzer.rb:723:in `block in resolve_dependencies' /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/user_interface.rb:64:in `section' /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/installer/analyzer.rb:721:in `resolve_dependencies' /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/installer/analyzer.rb:76:in `analyze' /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/installer.rb:236:in `analyze' /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/installer.rb:150:in `block in resolve_dependencies' /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/user_interface.rb:64:in `section' /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/installer.rb:149:in `resolve_dependencies' /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/installer.rb:110:in `install!' /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/command/install.rb:37:in `run' /Library/Ruby/Gems/2.0.0/gems/claide-1.0.1/lib/claide/command.rb:334:in `run' /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/command.rb:50:in `run' /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/bin/pod:55:in `' /usr/local/bin/pod:22:in `load' /usr/local/bin/pod:22:in `
' ``` ――― TEMPLATE END ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― [!] Oh no, an error occurred. Search for existing GitHub issues similar to yours: https://github.com/CocoaPods/CocoaPods/search?q=Cannot+initialize+an+aggregate+with+a+nil+source%3A+%28%5Bnil%5D%29&type=Issues If none exists, create a ticket, with the template displayed above, on: https://github.com/CocoaPods/CocoaPods/issues/new Be sure to first read the contributing guide for details on how to properly submit a ticket: https://github.com/CocoaPods/CocoaPods/blob/master/CONTRIBUTING.md Don't forget to anonymize any private data! Looking for related issues on cocoapods/cocoapods... - Changes search index format to fasten `pod search --full` command. https://github.com/CocoaPods/CocoaPods/pull/4249 [closed] [33 comments] 28 Oct 2015 [!] Your Podfile has had smart quotes sanitised. To avoid issues in the future, you should not use TextEdit for editing it. If you are not using TextEdit, you should turn off smart quotes in your editor of choice.

然后你应该尝试更新你的CocoaPods版本。 这可能对您有所帮助: https : //stackoverflow.com/a/39973232/3395008

如果mokagio的答案对任何人都不起作用,那么这对我有用:

只需将私人回购url更改为https://

 pod spec lint --sources='https://our-private-spec-repo:iOS/Specs.git,https://github.com/CocoaPods/Specs' 

为了使pod install正常工作,我仍然需要添加:

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

..到pod文件(不是podspec)。

摆脱:

无法找到[PrivateClientSpec]所依赖的[Pri​​vateSpec]规范