Подтвердить что ты не робот

Зависимость Cocoapods от спецификации pod не работает

Я получаю синтаксическую ошибку с этим 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" => "[email protected]" }

s.source       = { :git => "[email protected]: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 => '[email protected]:boolalsofware/bstiledimageview.git'

s.frameworks = 'QuartzCore', 'AssetsLibrary', 'UIKit'

s.requires_arc = true

end

Проблема связана с зависимостью, которая указывает на репозиторий bitbucket. Я получил это для работы с локальными зависимостями, но почему-то с репозиторией git он не работает. Спасибо за любую помощь!

4b9b3361

Ответ 1

Директива dependency podspec DSL поддерживает только имя зависимости и любого дополнительного требования к версии. Опция :git не поддерживается. Вы можете использовать его в своем подфайле или вы можете захотеть использовать специализированное частное репо в дополнение к мастер-репо.

Ответ 2

Я столкнулся с той же проблемой и обнаружил, что существует другой способ решения этой проблемы старым образом (благодаря @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)

В Podfile из Downloader (основной проект) вам просто нужно указать FFMpegPlayer перед Player pod:

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

Итак, в основном, все ваши подпозиции теперь перечислены в основном подфайле, что не гарантирует конфликтов между версиями модулей.