Cocoapods: no se puede encontrar una especificación para de la que dependía

Estoy intentando usar repositorys privados para dividir una aplicación más grande. He seguido las guías en:

  • http://www.objectpartners.com/2014/06/25/developing-private-in-house-libraries-with-cocoapods/
  • http://guides.cocoapods.org/making/private-cocoapods.html
  • Cómo agregar un CocoaPod privado como una dependencia en otro pod .podspec (similar pero un problema diferente)

He creado un repository local para contener las especificaciones, publicado a cocoapods vía

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

Verificó que los cocoapods los ve mirando los contenidos de ~/.cocoapods/repos/MySpecs

He hecho reference a PrivateSpec dentro de PrivateSpec siguiente manera:

s.dependency 'PrivateSpec' '~> 0.1.0'

El problema es que cuando trato de pelear este PrivateClientSpec , obtengo el error del titular:

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

¿Me estoy perdiendo de algo? Por lo que entiendo, este es un comportamiento compatible. Estoy usando cocoapods v0.35.

¡Gracias!

La razón es que el pod spec linter solo está comprobando las especificaciones maestras, por lo que no puede encontrar su privado.

Tendrá que usar la opción --sources , así:

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

Dos cosas dos nota:

  • Sus especificaciones privadas deben estar en línea, no se puede verificar en una local
  • Si depende de otros pods, deberá agregar la URL para su repository Spec también, por eso en el ejemplo tenemos https://github.com/CocoaPods/Specs también.

Al ejecutar la pod spec lint --help para get más información sobre esta opción:

 --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. 

Más sobre esto aquí y aquí

Para que la pod install funcione correctamente, todavía tenía que agregar:

 source '<Prive specs lib URL>' source 'https://github.com/CocoaPods/Specs.git' 

.. al file pod (no podspec).

Para deshacerse de:

No se puede encontrar una especificación para [PrivateSpec] de la que depende [PrivateClientSpec]

Entonces, si también no se pudo instalar con un error como este

 pod install --verbose Preparing Re-creating CocoaPods due to major version update. - Running source provider hooks https://github.com/CocoaPods/Specs.git <Prive specs lib URL> source_url <Prive specs lib 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 - <Prive specs lib URL> @ 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 '<Prive specs lib URL>' 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 `<top (requinetworking)>' /usr/local/bin/pod:22:in `load' /usr/local/bin/pod:22:in `<main>' ``` ――― TEMPLATE END ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― [!] Oh no, an error occurnetworking. 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. 

Entonces debes intentar actualizar tu versión de CocoaPods. Esto puede ayudarlo: https://stackoverflow.com/a/39973232/3395008

En caso de que la respuesta de mokagio no funcione para nadie, aquí está lo que funcionó para mí:

Simplemente cambia la URL de repository privada a https://

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

Para que la pod install funcione correctamente, todavía tenía que agregar:

 source '<Prive specs lib URL>' source 'https://github.com/CocoaPods/Specs.git' 

.. al file pod (no podspec).

Para deshacerse de:

No se puede encontrar una especificación para [PrivateSpec] de la que depende [PrivateClientSpec]