La dependencia de Cocoapods en la especificación de pod no funciona

Recibo un error de syntax con este file de especificación:

Pod::Spec.new do |s| s.name = "BSImageLoader" s.version = "0.1.3" s.summary = "The image loading framework for PicPoc" s.homepage = "https://bitbucket.org/boolalsofware/bsimageloader" s.license = 'MIT' s.author = { "Spencer Comerford" => "Spencevail@gmail.com" } s.source = { :git => "git@bitbucket.org:boolalsofware/bsimageloader.git", :tag => "0.1.3" } s.source_files = 'Classes/*.{h,m}', 'Classes/PublicHeaders/*' s.public_header_files = 'Classes/PublicHeaders/*.h' s.dependency = 'BSTiledImageView', :git => 'git@bitbucket.org:boolalsofware/bstiledimageview.git' s.frameworks = 'QuartzCore', 'AssetsLibrary', 'UIKit' s.requires_arc = true end 

El problema es con la dependencia que apunta a un repository de bitbucket. He conseguido que esto funcione con las dependencies locales, pero por alguna razón con un git repo no funciona. ¡Gracias por cualquier ayuda!

La directiva de dependency de DSL de podspec solo admite el nombre de la dependencia y cualquier requisito de versión opcional. La opción :git no es compatible. Puede usarlo en su Podfile o puede usar un repository privado personalizado además del repository maestro.

Me he enfrentado al mismo problema y he descubierto que hay otra manera de resolver este problema en la forma antigua (gracias a @eliperkins).

Digamos que tiene un proyecto principal Downloader , que utiliza un proyecto más pequeño Player , que depende del micro proyecto FFMpegPlayer . Entonces, lo que quieres es tener una dependencia en tu Player.podspec , que se vería así:

 s.dependency = 'FFMpegPlayer', :git => '...FFMpegPlayer.git' or s.dependency = 'FFMpegPlayer', :local => '../FFMpegPlayer' s.dependency = 'FFMpegPlayer', :path => '../FFMpegPlayer' s.dependency = 'FFMpegPlayer', :podspec => '../FFMpegPlayer/FFMpegPlayer.podspec' 

Pero todo eso no funcionará con la última versión de Pods y resulta que :local funcionaba como un efecto secundario hasta v0.17.1 .

A partir de ahora, puede especificar la dependencia de limpieza en Player.podspec :

 s.dependency = 'FFMpegPlayer' (its ok if that spec does not exist in public) 

En Podfile of Downloader (proyecto principal), solo tiene que especificar FFMpegPlayer antes Player pod Player :

 pod 'FFMpegPlayer', :path => '../FFMpegPlayer' (micro project) pod 'Player', :path => '../Player' (small project which depends on FFMpegPlayer) 

Entonces, básicamente, todos tus subpods ahora están listdos en el Podfile principal, eso garantiza que no hay conflictos entre las versiones de pods.