在pod spec中的Cocoapods依赖不起作用

我得到这个spec文件的语法错误:

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 

问题在于依赖关系指向一个bitbucket回购。 我已经得到了这个工作与本地依赖,但由于某种原因与git回购它不工作。 谢谢你的帮助!

podspec DSL的dependency指令仅支持依赖项的名称和任何可选的版本要求。 :git选项不受支持。 你可能会在你的Podfile中使用它,或者你可能想使用一个自定义的私人回购除了主回购。

我遇到了同样的问题,并发现有另一种方式来解决这个问题,旧的方式 (感谢@eliperkins)。

假设你有一个主项目Downloader ,它使用较小的项目Player ,这取决于微型项目FFMpegPlayer 。 所以你想要的是在你的Player.podspec有一个依赖,看起来像这样:

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

但是这一切都不能用最新版本的豆荚,事实certificate:local是作为副作用高达v0.17.1

从现在起,您可以在Player.podspec指定干净的依赖关系:

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

DownloaderPodfile (主项目)中,您只需 Player pod 之前指定FFMpegPlayer

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

因此,基本上,所有的子视图现在都列在主Podfile中,这保证了pod版本之间没有冲突。