2017-01-05 13 views
1
  • У меня есть подспец для MyLib.
  • MyLib.xcworkspace имеет две цели: цель MyLib и цель MySubLib.
  • MyLib зависит от MySubLib.
  • Как MyLib, так и MySubLib должны быть import в быстром модуле с использованием MyLib Cocoapod.

Иллюстрация:Создание podspec с несколькими целями, которые имеют локальные зависимости

MyLib.xcworkspace

  • цель MyLib < --- --- зависит от MySubLib
    • MYLIB стручки зависимостей
  • целевой MySubLib

Как достичь этого?

У меня есть следующий podspec, но после linting MySubLib не найден где это import ed в MyLib.

Pod::Spec.new do |s| 
    s.name    = "MyLib" 
    s.version   = "0.1" 
    s.summary   = "" 

    s.description  = <<-DESC 

         DESC 

    s.homepage   = "https://github.com/me/MyLib" 
    s.license   = 'MIT' 
    s.author   = { "me" => "[email protected]" } 
    s.source   = { :git => "https://github.com/me/MyLib.git", :tag => s.version.to_s } 

    s.platform  = :ios, '8.0' 
    s.requires_arc = true 

    s.dependency 'Alamofire' 

    s.source_files = 'MyLib/**/*.swift', 'MySubLib/**/*.swift' 
    s.resource_bundles = { 
    } 

end 

ответ

0

Вы можете использовать subspec. Я использую его в своих рамках L10n-swift.

Библиотека может указывать зависимость от любой другой библиотеки, подпрограмм другой библиотеки или подпрограммы.

Возвращаясь к вашей проблеме

Pod::Spec.new do |s| 
    s.name    = "MyLib" 
    s.version   = "0.1" 
    s.summary   = "" 

    s.description  = <<-DESC 

    DESC 

    s.homepage   = "https://github.com/me/MyLib" 
    s.license   = 'MIT' 
    s.author   = { "me" => "[email protected]" } 
    s.source   = { :git => "https://github.com/me/MyLib.git", :tag => s.version.to_s } 

    s.platform  = :ios, '8.0' 
    s.requires_arc = true 

    s.subspec 'MySubLib' do |mySubLib| 
     mySubLib.dependency 'Alamofire' 
     mySubLib.source_files = 'MySubLib/**/*.swift' 
    end 

    s.subspec 'MyLib' do |myLib| 
     myLib.dependency 'MyLib/MySubLib' 
     myLib.source_files = 'MyLib/**/*.swift' 
    end 

    s.resource_bundles = { } 
end 

Вы можете также определить default_subspec

массив имен subspecs, которые должны быть использованы в качестве предпочтительного зависимости. Если не указано, спецификации требуют, чтобы все его подпрограммы были зависимыми.

+0

Не похоже, что подпрограмма 'MySubLib' используется как зависимость в любом месте. Кроме того, почему 'MyLib' нуждается в собственном подпрограмме? –

+1

@ Awesome-o О, извините, я допустил ошибку. Конечно, 'MyLib' не должен зависеть от себя, а от' MySubLib'. Я обновил свой ответ –

+0

В настоящее время я не работаю над тем, для чего это было важно, но когда я вернусь к нему в ближайшем будущем, я проверю это и пометьте его как ответ, если он будет работать –