¿Cómo incluyo una dependencia de biblioteca estática en una plantilla XCode?

Puedo include un marco como tal en un file TemplateInfo.plist:

<key>Frameworks</key> <array> <string>QuartzCore</string> <string>OpenGLES</string> <string>OpenAL</string> <string>AudioToolbox</string> <string>AVFoundation</string> <string>UIKit</string> <string>Foundation</string> <string>CoreGraphics</string> </array> 

Pero no puedo encontrar cómo hacer algo similar con las bibliotecas estáticas. Esto mejoraría mucho mi plantilla. ¿Hay tal funcionalidad?

Encontré una solución

En templateInfo.plist agregar key Destinos -> ShanetworkingSettings

 <key>OTHER_LDFLAGS</key> <string>ObjC -all_load -weak_library /usr/lib/libz.dylib ..</string> 

Añade su dylib para depurar y ejecutar la configuration … no funciona con autocompletado como puede hacerlo xcode con frameworks, pero mucho mejor que hacerlo manualmente

EDITAR: expalin

 <key>Targets</key> <array> <dict> <key>Dependencies</key> <array><integer>0</integer></array> <key>Frameworks</key> <array> <string>CoreAudio</string> </array> <key>ShanetworkingSettings</key> <dict> <key>OTHER_LDFLAGS</key> <string>-ObjC -all_load -weak_library /usr/lib/libz.dylib -weak_library /usr/lib/libstdc++.dylib </string> </dict> </dict> 

La mejor manera que encontré para hacer esto es crear un alias para el directory / usr / lib dentro de tu carpeta de templates. Desde allí, puede acceder a todas las libs que están en / usr / lib, incluso las que son alias.

Primero, creo templates al editar los .plists en XCode, no editando las representaciones xml por sí mismas. Entonces, así explicaré los pasos que tomé para include bibliotecas estáticas en mi plantilla.


1) Tengo una plantilla de proyecto: iPhoneOS.platform / Developer / Library / Xcode / Templates / Project Templates / Application / C4 Application.xctemplate

(En Xcode 4.3, las templates / aplicaciones del proyecto se pueden encontrar directamente en Xcode.app haciendo clic con el button derecho en el package y seleccionando Mostrar contenido del package)

imagen

Las tripas de esta carpeta se ven así:

imagen

2) Como puedes ver en la image de arriba, creé un alias para la carpeta lib ( /usr/lib ) que contiene bibliotecas estáticas y moví el alias a mi carpeta .xctemplate.

imagen

3) En mi file TemplateInfo.plist especifique 2 cosas: un dictionary y un nodo. Los puse dentro de las definiciones y nodos de TemplateInfo.plist

imagen

Primero, en el nodo Definiciones, especifique un dictionary llamado: Libs / libalias.dylib

Dentro de esta lib tengo 2 cadenas Grupo: Libs Path: lib / libalias.dylib

El nodo se ve así:

imagen

Es importante que la syntax sea exactamente igual a esta y, lo que es más importante, que el nombre del dictionary especifique la biblioteca que desea importar. En este caso, estoy importando la biblioteca libalias.dylib.

También es importante que la ruta sea lib / libalias.dylib porque esto apuntará al alias que apunta a su carpeta / usr / lib.

En segundo lugar, en la matriz de nodos, especifique un elemento como una cadena que se llama Libs / libalias.dylib (nota: el mismo nombre exacto que el dictionary especificado en Definiciones)

imagen

Este es el aspecto del elemento del nodo.

4) Una vez que tenga estas cosas configuradas, puede crear un nuevo proyecto con su lib ya incluida.

imagen

NOTA: porque llamé a mi Dictionary Libs / … y especificé que es Group as Libs, la biblioteca que estoy importando aparece en una subcarpeta llamada Libs en mi Project Navigator.