Vinculación de bibliotecas estáticas, que comparten otra biblioteca estática

Actualmente tengo un solo proyecto de Xcode para una base de código muy grande, lo llamaré Proyecto X , que estoy dividiendo en un grupo de subproyectos ( Proyectos A, B, C ).

Hasta el momento, cada uno de estos proyectos comstack, por sí solo, muy bien. Todos ellos producen bibliotecas estáticas. El Proyecto B y el Proyecto C dependen de la biblioteca estática producida por el Proyecto A para su construcción.

Tengo otro proyecto xcode, Proyecto Z , que requiere las bibliotecas estáticas producidas por los Proyectos B y C. Aquí radica el problema. Cuando el Proyecto Z ingresa en la fase del enlazador, las cosas explotan: ¡los símbolos duplicados se encuentran dentro de las bibliotecas para los Proyectos B y C para el código con el que se vinculó originalmente en el Proyecto A !

Soy bastante nuevo en el mundo de las bibliotecas estáticas, y no estoy seguro de cómo seguir adelante con Project Z , o cómo modificar los otros proyectos para que se vinculen con la misma librería de Project A. Tengo la sensación de que no es posible. ¿Cuáles son mis opciones aquí?

Editar:

Debo aclarar que el Proyecto B y el Proyecto C necesitan construir bibliotecas estáticas separadas porque algunos clientes solo requerirán una u otra.

Además, estoy teniendo este dilema tanto en plataformas OSX como iOS.

Me doy cuenta de que podría resolver este problema en OSX construyendo los proyectos como bibliotecas dinámicas. Sin embargo, preferiría no hacer esto, y aún me deja el mismo problema en iOS.

Las bibliotecas estáticas nunca deberían incluir otras bibliotecas estáticas (o código de terceros en general). Una biblioteca estática es simplemente un paquete de archivos .o pegados. Entonces, si tiene copias múltiples de la misma información, explotará.

Cada biblioteca estática solo debe tener su propio código. La aplicación final es responsable de vincular todas las bibliotecas necesarias juntas (incluidas las bibliotecas requeridas por las bibliotecas). De esta forma, hay exactamente una copia de cada cosa vinculada.

Esto suena exactamente como el tipo de problema que CoacoaPods fue creado para resolver. Si define pods para cada uno de estos proyectos, Z debería poder determinar y enlazar con todas sus dependencias a lo largo de la cadena sin introducir símbolos duplicados.