在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)
在Downloader
的Podfile
(主项目)中,您只需在 Player
pod 之前指定FFMpegPlayer
:
pod 'FFMpegPlayer', :path => '../FFMpegPlayer' (micro project) pod 'Player', :path => '../Player' (small project which depends on FFMpegPlayer)
因此,基本上,所有的子视图现在都列在主Podfile中,这保证了pod版本之间没有冲突。