iOS: aclara diferentes routes de búsqueda

Hay tres routes de búsqueda diferentes en Configuración de compilation XCode:

  • Ruta de búsqueda del marco
  • Encabezado de búsqueda de encabezado
  • Ruta de búsqueda de la biblioteca

¿Alguien podría aclarar qué hacen esos paths y para qué sirven?

Ruta de búsqueda de Framework : dónde search frameworks ( .framework bundles) además de routes de frameworks de sistemas. No se usa mucho en el desarrollo de iOS, oficialmente no hay frameworks iOS para desarrolladores.

En el desarrollo de Mac, se establece automáticamente si arrastra un marco de terceros en el proyecto. De lo contrario, simplemente establézcalo en el directory del contenedor donde guardó el marco.

En los files xcconfig , usa esta variable:

 FRAMEWORK_SEARCH_PATHS = "/path/to/frameworks/container/directory" 

Ruta de búsqueda de encabezado : dónde search files de encabezado (files .h ) además de las routes del sistema. Por lo general, lo necesitará si está utilizando una biblioteca de terceros. Configúrelo en el directory donde tiene los files de encabezado. Si usa un directory para include el encabezado (ejemplo: #import "mylibrary/component.h" ) #import "mylibrary/component.h" en el directory principal.

En los files xcconfig , usa esta variable:

 HEADER_SEARCH_PATHS = "/path/to/headers/container/directory" 

Ruta de búsqueda de la biblioteca : dónde search files de la biblioteca además de las routes del sistema. Xcode lo configurará automáticamente si arrastra una biblioteca (files .a ) al proyecto. Para configurarlo manualmente, use el directory donde se encuentra la biblioteca.

En los files xcconfig , usa esta variable:

 LIBRARY_SEARCH_PATHS = "/path/to/libraries/container/directory" 

Los tres pueden contener una list de routes, con comillas, separadas por espacio.

Se utilizan para search frameworks, files de encabezado o bibliotecas que no están en las routes de búsqueda del sistema (como QTKit.Framework, files de encabezado estándar de C ++, etc.).

Mi uso más común para esto es utilizar los files de la biblioteca de encabezado boost (* .hpp) en mi código. Agrego la ruta relativa "../lib/Boost/1.46.1" a la ruta de búsqueda de encabezado.

Me parece mejor agregar esto al nivel de proyecto en lugar de en cada objective. De esta forma, los objectives henetworkingan esto y solo hay que cambiarlo en un lugar si actualizo la versión de impulso.