Définir la cible de deployment pour le pod de CocoaPods

J'utilise CocoaPods pour gérer les dependencies dans mon projet. J'ai écrit 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 

Ce file fonctionne bien avec CocoaPods 0.x mais je ne peux pas comstackr le projet après que j'ai mis à jour vers CocoaPods 1.0. Après avoir couru

 pod update 

Je ne peux pas comstackr mon projet avec erreur:

/Users/<…>/Pods/KeepLayout/Sources/KeepAtsortingbute.m:195:1: Impossible de synthétiser une propriété faible car la cible de deployment actuelle ne prend pas en charge les references faibles

J'ai vu que chaque bibliothèque est construite avec une cible de deployment différente. Par exemple, KeepLayout est construit avec une cible de deployment 4.3.

Comment puis-je déterminer la cible de construction pour chaque dépendance de pod?

Alors que certaines versions de développement de CocoaPods (ainsi que des versions antérieures à la version 1.0) ont peut-être propagé la cible de deployment du projet jusqu'aux pods, ce n'est plus le cas dans la version 1.0 . Pour contourner ce problème, le développeur actuel recommand d' utiliser un hook post-installation.

Voici une approche de force brute pour forcer une cible de deployment codée en dur pour chaque pod dans le projet Pods généré. Collez ceci à la fin de votre file Podfile:

 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