iOS Library / Framework, cómo excluir classs específicas del producto de compilation?

Estoy tratando de build una biblioteca / marco de iOS, que en aras de la simplicidad, diremos que expone una class A a proyectos que la usan. Ahora el problema es que la class A depende de la class B , que no debe estar expuesta (o incluso incluida como un símbolo) en la salida de compilation para la biblioteca. Esto causa problemas porque hay otra biblioteca con class C que también depende de la class B

Lo que sucede es que si bash include ambas bibliotecas en un proyecto, el linker se queja de tener múltiples definiciones de class B

¿Cuál es la mejor forma de solucionar este problema? ¿Es posible establecer que la class B esté débilmente vinculada al build las dos bibliotecas (o al less una de las dos bibliotecas) y, de ser así, cómo?

¿O debería extraerse la class B en su propia biblioteca / marco y las dos bibliotecas modificadas para hacer reference a eso en lugar de include la class B como un file fuente?

Creo que la mejor manera es hacer múltiples objectives en su proyecto. La forma más fácil de hacerlo es hacer clic en el file de proyecto en la list de files en el lado izquierdo de XCode, hacer clic derecho en el object en "TARGETS" en el panel central y seleccionar Duplicar . Luego puede include A y C en un objective, y B y C en otro. Puede comstackrlos por separado, y es básicamente como tener dos proyectos, excepto que comparten files comunes. ¿Esto suena como lo que quieres?

EDITAR Pensándolo bien, no suena como eso. Su problema está sucediendo cuando comstack en una biblioteca, y luego vincula otro proyecto a la misma, ¿verdad?

No parece que haya una manera de tener objects débilmente enlazados dentro de una biblioteca comstackda. Probablemente será mejor dividirlos en bibliotecas separadas (que es lo que sucedió en el escenario descrito al final de esta página )