Cómo tener múltiples pods en un repository git

Context

Estamos desarrollando una gran plataforma de software que incluye Android, Servidor, Web e iOS (con otros por venir). Para mantener todos nuestros códigos actualizados entre sí, lo guardamos todo en un repository principal (esto es muy importante ya que compartimos un model en todas las plataforms, por lo que los compromisos pueden afectar a muchas plataforms diferentes).

Para manejar el lado de iOS, hemos decidido dividir el proyecto en modules modulares para que podamos compartirlos fácilmente en nuestras otras bibliotecas (también pods), y para que cuando lo lanzamos sea fácil para nuestros clientes include nuestra aplicación en sus proyectos existentes (es decir, queremos utilizar la estructura de cocoapods para todos los maravillosos beneficios que ofrece cocoapods).

Para lograr esto, me he dedicado a configurar un repository de especificaciones privadas y especificaciones de pod para cada uno de nuestros proyectos.

tl; dr : Tenemos un repo master git que contiene todo nuestro código (múltiples plataforms, incluyendo múltiples pods diferentes). Queremos mantener esta estructura pero también poder crear pods a partir del código dentro del repository.

Pregunta

El problema al que me estoy enfrentando es toda la documentation que puedo encontrar para las especificaciones del pod; digamos que tienes que usar este formatting:

spec.source = { :git => 'https://github.com/AFNetworking/AFNetworking.git', :tag => spec.version.to_s }

la única parte que me sorprende es que nuestro repository no solo contiene un pod (y mucho less solo el código iOS).

¿Es posible hacer algo como esto?

spec.source = { :git => 'https://github.com/MyCompany/Master/MyCompanyCoreDir', :tag => spec.version.to_s }

Realmente apreciamos cualquier ayuda

Aclamaciones

Índigo

Es posible tener múltiples cocoapods en el único repository de Git.

Tal como lo dijiste, puedes especificar diferentes fonts para cada uno que conduzcan a un código de pod específico.

Para que esto funcione, también debe establecer los files de origen adecuados en la especificación, por ejemplo: s.source_files = 'SomePodDirectory/*.swift' .

Incluso puede administrar varias versiones de cada pod usando algo como esto para la fuente : s.source = { :git => 'https://github.com/MyCompany/Repository.git', :tag => 'SomePodName-v'+String(s.version) } .

En ese caso, debe crear tags adecuadas en Git (por ejemplo, SomePodName-v1.0.0 ).

Puedes ver un ejemplo de esto aquí .