Задайте цель развертывания для 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