Cómo configurar correctamente un Podfile que tiene un objective de marco y un objective de aplicación que utiliza ese marco.

Tener la siguiente estructura de proyecto:

  • El destino de aplicación que reside en un proyecto Xcode (App.xcodeproj) depende de un objective de Framework que reside en un proyecto Xcode diferente (Framework.xcodeproj).
  • El destino de la aplicación depende del module de material.
  • El objective del marco depende del pod de AFNetworking.

¿Este tipo de configuration es compatible con CocoaPods?

Mi primer bash fue hacer algo como esto:

platform :ios, '9.0' use_frameworks! target 'App' do workspace 'App.xcworkspace' project 'App.xcodeproj' pod 'Material' end target 'Framework' do workspace 'App.xcworkspace' project 'Framework/Framework.xcodeproj' pod 'AFNetworking' end 

Pero la aplicación falla al iniciarse con el siguiente error:

 dyld: Library not loaded: @rpath/AFNetworking.framework/AFNetworking Referenced from: /Users/ruenzuo/Library/Developer/Xcode/DerivedData/App-aayvulxvruuarudtheuilepmmctk/Build/Products/Debug-iphonesimulator/Framework.framework/Framework Reason: image not found 

Lo que tiene sentido, porque CocoaPods no sabe que la aplicación y el marco están relacionados. De hecho, después de la installation del pod, recibo la siguiente advertencia:

 [!] The Podfile contains framework targets, for which the Podfile does not contain host targets (targets which embed the framework). If this project is for doing framework development, you can ignore this message. Otherwise, add a target to the Podfile that embeds these frameworks to make this message go away (eg a test target). 

Luego traté de incrustar el objective de Framework en el objective de Aplicación, así:

 platform :ios, '9.0' use_frameworks! target 'App' do workspace 'App.xcworkspace' project 'App.xcodeproj' pod 'Material' target 'Framework' do workspace 'App.xcworkspace' project 'Framework/Framework.xcodeproj' pod 'AFNetworking' end end 

Pero no funcionó. La única forma en que logré que funcione fue como:

 platform :ios, '9.0' use_frameworks! target 'App' do workspace 'App.xcworkspace' project 'App.xcodeproj' pod 'Material' pod 'AFNetworking' end target 'Framework' do workspace 'App.xcworkspace' project 'Framework/Framework.xcodeproj' pod 'AFNetworking' end 

Pero tener la vaina AFNetworking repetida parece que estoy haciendo algo mal. Además, no logré deshacerme de la advertencia, así que obviamente solo estoy obligando a que esto funcione haciendo que CocoaPods copie sobre el pod AFNetworking en el directory Frameworks de la aplicación.

¿Alguien ha logrado que algo así funcione?