Cocoapods, добавить зависимости для всех целей в общем виде
Приложение имеет более 20 целей.
Каждый раз, когда я добавляю цель, мне нужно обновлять свой подфайл:
Podfile
target 'SomeNewTarget' do
runAllPods // Block that contains all "pod ...."
end
Мой вопрос:
Есть ли общий способ добавления зависимостей ко всем целям? Я бы хотел добавить одинаковые зависимости ко всем целям, кроме цели тестирования.
Полный подфайл:
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
inhibit_all_warnings!
def runAllPods
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for MyApp
pod 'Swinject', '~> 2.1.0'
pod 'SwinjectAutoregistration', '2.1.0'
pod 'IHKeyboardAvoiding', '4.0'
pod 'SnapKit', '3.2.0'
pod 'Material', '~> 2.10.2'
pod 'RxSwift', '~> 3.0'
pod 'RxCocoa', '~> 3.0'
pod 'PureLayout'
pod 'Alamofire', '~> 4.5'
.... Больше зависимостей
end
post_install do |installer|
installer.pods_project.targets.each do |target|
if target.name == 'HydraAsync' || target.name == 'DKImagePickerController' || target.name == 'WhatsNew' || target.name == 'Closures'
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '4.0'
end
end
end
end
target 'Target1' do
runAllPods
end
target 'Target2' do
runAllPods
end
target 'Target3' do
runAllPods
end
target 'Target4' do
runAllPods
end
...
target 'Target 20' do
runAllPods
end
... Больше целей
1 ответ
Решение
Делать что-то подобное, возможно, сработает.
def common_pods
pod 'Pod1'
pod 'Pod2'
pod 'Pod3'
…
end
project = Xcodeproj::Project.open "../Project.xcodeproj"
project.targets.each do |t|
target t.name do
common_pods
end
end
Для получения более подробной информации об этом подходе, проверьте эту ветку о репозитории Cocoapod: