Biblioteca + Proyecto CocoaPod en el espacio de trabajo único, repositorys GIT separados

Estoy tratando de entender esto entorno complejo:

Tengo dos proyectos y una biblioteca compartida. La biblioteca compartida es un cocoapod.

Me gustaría poder usar un único espacio de trabajo para desarrollar. Existen algunas definiciones de pod duplicadas, pero tengo esto funcionando en un único file de Podfile.

Aquí es donde se complica:

Quiero cada proyecto / biblioteca en su propio repository git. Cada repos debe ser capaz de vivir por sí mismo; tiene su propio Podfile, se testing / implementa a través de CI, etc.

Otra llave: somos la estrategia de ramificación git-flow … La twig principal del proyecto A / B debe extraer la twig principal de la biblioteca. La twig de desarrollo del proyecto A / B debe extraer la twig de desarrollo de la biblioteca.

¿Alguien ha descubierto esto? ¿Voy a hacer esto de una manera al revés?

Aquí hay un Podfile de área de trabajo de raíz en funcionamiento:

platform :ios, "7.0" inhibit_all_warnings! workspace 'Root.xcworkspace' xcodeproj 'ShanetworkingLibrary/ShanetworkingLibrary.xcodeproj' xcodeproj 'ProjectA/ProjectA.xcodeproj' xcodeproj 'ProjectB/ProjectB.xcodeproj' target 'ShanetworkingLibrary' do xcodeproj 'ShanetworkingLibrary/ShanetworkingLibrary.xcodeproj' pod 'AFNetworking', '~> 2.0' pod 'CocoaLumberjack' end target 'ProjectA' do xcodeproj 'ProjectA/ProjectA.xcodeproj' pod 'AFNetworking', '~> 2.0' pod 'CocoaLumberjack' pod 'MagicalRecord', '~> 2.2' pod 'ShanetworkingLibrary', :path => './ShanetworkingLibrary/' end target 'ProjectB' do xcodeproj 'ProjectB/ProjectB.xcodeproj' pod 'AFNetworking', '~> 2.0' pod 'CocoaLumberjack' pod 'MagicalRecord', '~> 2.2' pod 'ShanetworkingLibrary', :path => './ShanetworkingLibrary/' end 

Aquí está el podspec de la biblioteca compartida:

 Pod::Spec.new do |s| s.name = "ShanetworkingLibrary" s.version = "0.0.1" s.platform = :ios, "7.0" s.source = { :git => "http://not.really.uploaded.anywhere.yet/ShanetworkingLibrary.git", :tag => "0.0.1" } s.source_files = "ShanetworkingLibrary", "ShanetworkingLibrary/**/*.{h,m}" s.public_header_files = "ShanetworkingLibrary/**/*.h" s.dependency 'AFNetworking', '~> 2.0' s.dependency 'CocoaLumberjack' end 

Lo que hice fue definir un objective "exclusivo" para la biblioteca CocoaPod. Un objective exclusivo no se vinculará con el rest de pods de Podfile. Básicamente, lo que tendrá que hacer es definir su objective que apunte al proyecto de Xcode. Luego necesita agregar CocoaPod como una dependencia usando el podspec. Debido a que es un objective exclusivo, no se vinculará consigo mismo. Por ejemplo,

 source 'https://github.com/CocoaPods/Specs.git' target 'ShanetworkingLibrary', :exclusive => true do xcodeproj 'ShanetworkingLibrary/ShanetworkingLibrary.xcodeproj' end pod 'ShanetworkingLibrary', :path => 'ShanetworkingLibrary/' 

hace lo que usted necesita. La única advertencia es que cada vez que agrega un encabezado público a la biblioteca, necesita ejecutar la pod update para usarlo en su proyecto.

Podfile Sintaxis de los objectives