xcode header static-libraries

Xcode: Copiar encabezados: público vs. privado vs. proyecto?



header static-libraries (2)

Estoy construyendo una Biblioteca Estática Cocoa Touch. ¿Cómo debería decidir si copio un archivo de encabezado como público, privado o proyecto?


Público: la interfaz está finalizada y destinada a ser utilizada por los clientes de su producto. Un encabezado público se incluye en el producto como código fuente legible sin restricción.

Privado: la interfaz no está destinada a sus clientes o está en las primeras etapas de desarrollo. Se incluye un encabezado privado en el producto, pero está marcado como "privado". Por lo tanto, los símbolos son visibles para todos los clientes, pero los clientes deben comprender que no deben usarlos.

Proyecto: la interfaz solo debe ser utilizada por archivos de implementación en el proyecto actual. Un encabezado de proyecto no está incluido en el destino, excepto en el código objeto. Los símbolos no son visibles para los clientes, solo para usted.

Fuente: Biblioteca del desarrollador de Xcode> Herramientas e idiomas> IDEs> Ayuda del editor de proyectos> Configuración de la visibilidad de un archivo de encabezado


La respuesta de Randy es buena y te da todos los antecedentes relevantes. Quería agregar algo de información para ayudarte en función de cómo esperas que se use tu biblioteca.

PROYECTO: si está distribuyendo su proyecto y espera que los usuarios lo incluyan como un subproyecto, debe asegurarse de que los encabezados estén marcados como ''proyecto''. De lo contrario, surgirán problemas como este: Xcode 4 Archive Version Unspecified

Tenga en cuenta que esto se aplica a todos los subproyectos ... incluidos los subproyectos de subproyectos, recursivamente.

PÚBLICO: si espera que los usuarios de su biblioteca solo se vinculen con su objeto (y NO tengan su proyecto original), asegúrese de que sus encabezados estén marcados como ''públicos'' (solo para encabezados a los que deberán referirse).