Задайте цель развертывания для CocoaPods pod

Я использую CocoaPods для управления зависимостями в моем проекте. Я написал Podfile:

target 'MyApp' do
  platform :ios, '8.0'
  # Uncomment this line if you're using Swift or would like to use dynamic frameworks
  #use_frameworks!

  # Pods for MyApp
  pod 'KeepLayout', :git => 'https://github.com/iMartinKiss/KeepLayout', :tag => 'v1.6.0'
  pod 'EasyMapping'

  target 'MyAppTests' do
    inherit! :search_paths
    # Pods for testing
  end

  target 'MyAppUITests' do
    inherit! :search_paths
    # Pods for testing
  end

end

Этот файл хорошо работает с CocoaPods 0.x, но я не могу скомпилировать проект после обновления CocoaPods 1.0. После того, как я запустил

pod update 

Я не могу скомпилировать свой проект с ошибкой:

/Users/<... > /Pods/KeepLayout/Sources/KeepAttribute.m: 195: 1: не удается синтезировать слабое свойство, поскольку текущий целевой объект развертывания не поддерживает слабые ссылки

Я видел, что каждая библиотека построена с разной целью развертывания. Например, KeepLayout построен с целью развертывания 4.3.

Как я могу определить цель сборки для каждой зависимости подкачки?

Ответ 1

В то время как некоторые версии разработки CocoaPods (а также версии до версии 1.0) могут распространять цель развертывания проекта вплоть до контейнеров, это no дольше в 1.0. Чтобы обойти это, текущий разработчик рекомендует, используя крюк после установки.

Здесь применяется грубая сила, чтобы заставить жестко запрограммированную цель развертывания для каждого элемента в созданном проекте Pods. Вставьте это в конец вашего подфайла:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.2'
    end
  end
end