49

我收到此规范文件的语法错误:

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 repo 它无法正常工作。谢谢你的帮助!

4

2 回答 2

85

我遇到了同样的问题,发现还有另一种方法可以用旧的方式解决这个问题(感谢@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'

但是所有这些都不适用于最新版本的 Pods,结果证明它:local的副作用是v0.17.1.

从现在开始,您可以在以下位置指定干净的依赖项Player.podspec

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

PodfileDownloader主项目)中,您只需在podFFMpegPlayer 之前指定: Player

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

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

于 2013-07-18T23:42:06.263 回答
33

dependencypodspec DSL的指令仅支持依赖的名称和任何可选的版本要求。:git不支持该选项。您可以在 Podfile 中使用它,或者您可能希望在主存储库之外使用自定义私有存储库。

于 2013-06-04T14:15:41.423 回答