2012-03-27 15 views
6

Estoy creando una biblioteca y aunque está funcionando perfectamente bien empaquetando todo mi código y colocando todos los archivos de encabezado en una carpeta y luego comprimiendo la carpeta y la biblioteca estática, simplemente no puedo entender el propósito del La sección "Copiar encabezados" en Crear Fases.iPhone - Bibliotecas estáticas, propósito de "Copiar encabezados"?

He leído todo esto enlaces:

Using open source static libraries

Creating static libraries for iOS

How to create universal static libraries

Stackoverflow: copy headers: public vs private vs project

Pero todavía no veo el punto de ajuste de las cabeceras de copia, yo se da cuenta de que puede establecer el camino privado y público en la compilación settings> packaging, y que los archivos de cabecera irán a esa carpeta después de la compilación. ¿Pero cuál es el punto en esto ?, ¿es esto diferente de no establecer un archivo de encabezado de copia única, y simplemente tomar el archivo .a tomar todos mis archivos de encabezado y ponerlos en una carpeta ?. Además, ¿cuál es el propósito de establecer encabezados de proyecto de copia ?, ya que no están incluidos en el destino en absoluto ?.

Respuesta

1

Que yo sepa, agregar los encabezados a la sección "Pública" de la fase "Copiar encabezados" es exactamente lo mismo que copiarlos en la carpeta de lanzamiento.

lo uso como una conveniencia, ya que automatizan el proceso de envasado biblioteca con una secuencia de comandos de ejecución (gracias a this StackOverflow questionque debería leer si se quiere proporcionar a las bibliotecas universales).

Al hacer esto, sólo tiene que añadir mis nuevas cabeceras públicas a la sección "Público" de la fase de "Copiar encabezados" para los han desplegado automáticamente en mi carpeta de destino con esta parte de la secuencia de comandos:

######### 
# 
# Added: StackOverflow suggestion to also copy "include" files 
# (untested, but should work OK) 
# 
if [ -d "${CURRENTCONFIG_DEVICE_DIR}/usr/local/include" ] 
then 
mkdir -p "${CREATING_UNIVERSAL_DIR}/headers" 
# * needs to be outside the double quotes? 
cp "${CURRENTCONFIG_DEVICE_DIR}/usr/local/include/"* "${CREATING_UNIVERSAL_DIR}/headers" 
fi 

También he notado que esos encabezados se copian en el paquete al archivar (Producto -> Archivar), por lo que tal vez sea un primer paso de Apple para proporcionar una forma limpia de crear bibliotecas estáticas.

Esperanza esto ayuda

Cuestiones relacionadas