как разделить некоторые стручки в двух target by podfile


xcodeproj 'Demo.xcodeproj'

platform :ios, "6.0"

target "Demo" do
    pod 'Demo-A', '3.1.1'
    pod 'Demo-B', '1.0'
    pod 'Demo-C', '~> 1.9.0'
    pod 'Demo-D', '~> 1.1'

    pod 'AA', '0.0.1'
    pod 'BB', '0.0.1'
    pod 'CC', '0.0.1'
    pod 'DD', '0.0.1'
    pod 'EE', '0.0.1'
    pod 'FF', '0.0.1'
    pod 'GG', '0.0.1'
end

target "DemoTests" do
    pod 'DemoTests-X', '3.1.1'
    pod 'DemoTests-Y', '0.4.0'
    pod 'DemoTests-Z', '4.1.1'

    pod 'AA', '0.0.1'
    pod 'BB', '0.0.1'
    pod 'CC', '0.0.1'
    pod 'DD', '0.0.1'
    pod 'EE', '0.0.1'
    pod 'FF', '0.0.1'
    pod 'GG', '0.0.1'
end

target "DemoWidget" do
    pod 'DemoWidget-1', '3.1.1'
    pod 'DemoWidget-2', '0.4.0'
    pod 'DemoWidget-3', '4.1.1'
end

Это мой подфайл . как вы можете видеть.

pod 'AA', '0.0.1'
pod 'BB', '0.0.1'
pod 'CC', '0.0.1'
pod 'DD', '0.0.1'
pod 'EE', '0.0.1'
pod 'FF', '0.0.1'
pod 'GG', '0.0.1'

Этот код появляется дважды. DemoTests-это тестовая цель для демо-цели.пока я пишу тестовый файл и импровизирую исходный файл в демо target.it будет зависеть какой-то файл в стручках,который в Demo target, но не в DemoTests target. поэтому я пишу этот код Подфайла дважды для зависимости. но это же уродство! мои коллеги и я должны поддерживать два набора такого кода.и мой Подфайл раздуется! я хочу сохранить этот код один раз! как это сделать~ Я люблю кокосовых стручков! я верю, что это решит мою проблему ~ ожидание ответа u~~~~

2 10

2 ответа:

Вы можете использовать его таким образом, чтобы уменьшить длину вашего подфайла, а также иметь возможность поддерживать код один раз!!!

xcodeproj 'Demo.xcodeproj'

platform :ios, "6.0"

def common_pods_for_target
    pod 'AA', '0.0.1'
    pod 'BB', '0.0.1'
    pod 'CC', '0.0.1'
    pod 'DD', '0.0.1'
    pod 'EE', '0.0.1'
    pod 'FF', '0.0.1'
    pod 'GG', '0.0.1'
end

target "Demo" do
    pod 'Demo-A', '3.1.1'
    pod 'Demo-B', '1.0'
    pod 'Demo-C', '~> 1.9.0'
    pod 'Demo-D', '~> 1.1'
    common_pods_for_target
end

target "DemoTests" do
    pod 'DemoTests-X', '3.1.1'
    pod 'DemoTests-Y', '0.4.0'
    pod 'DemoTests-Z', '4.1.1'
    common_pods_for_target
end

target "DemoWidget" do
    pod 'DemoWidget-1', '3.1.1'
    pod 'DemoWidget-2', '0.4.0'
    pod 'DemoWidget-3', '4.1.1'
end

Просто определите все ваши общие модули в переменной и используйте ее в целях, которые вы хотите.

CocoaPods now рекомендует использовать abstract_target Если вы хотите, чтобы несколько целей разделяли одни и те же капсулы. Обратите внимание, как реальные цели вложены в новую абстрактную цель.

# There are no targets called "Shows" in any Xcode projects
abstract_target 'Shows' do
  pod 'ShowsKit'
  pod 'Fabric'

  # Has its own copy of ShowsKit + ShowWebAuth
  target 'ShowsiOS' do
    pod 'ShowWebAuth'
  end

  # Has its own copy of ShowsKit + ShowTVAuth
  target 'ShowsTV' do
    pod 'ShowTVAuth'
  end
end