objective c - guide - XCode 4 añadiendo dylib
swift ios documentation (2)
El problema no es cuando Xcode está buscando la biblioteca en tiempo de compilación, que es a lo que responde la respuesta de Simon Whitaker.
El problema es que la aplicación que usa el dylib no puede encontrarlo en tiempo de ejecución. Cuando se crea una aplicación que utiliza una biblioteca dinámica, copia el nombre de instalación de dylib en el binario de salida.
Lo correcto es crear una fase de copia de archivos y copiar el dylib al subdirectorio de Frameworks del paquete de la aplicación.
Sin embargo, necesitas hacer un paso adicional. Debe compilar la biblioteca dinámica con un nombre de instalación adecuado para una aplicación de paquete. De forma predeterminada, se crea una biblioteca dinámica con un nombre de instalación de / usr / local / lib. La aplicación no puede encontrar tu biblioteca allí porque no existe. Incluso si coloca la biblioteca allí, sus usuarios ciertamente no la tendrán, por lo que esa sería la solución incorrecta.
La solución correcta es agrupar la biblioteca con la aplicación. Para establecer el nombre de instalación de la biblioteca dinámica, vaya al proyecto de biblioteca dinámica y configure la opción "Nombre de instalación de la biblioteca dinámica" en: @executable_path /../ Frameworks / libmydynamiclibrary.dylib
Estoy tratando de crear y luego agregar el dylib a un proyecto. Lo creé usando la plantilla "Cocoa-Library" y configurando el tipo como "Dinámico" (no estoy seguro si debería ser dinámico o estático ...). Luego creé una clase obj-c simple llamada Prueba y escribí un método que imprime algo para la consola.
Compilé y usé el archivo .dylib generado y lo puse en otro proyecto. Ahora, cada vez que trato de usarlo, recibo este mensaje en tiempo de ejecución "
dyld: Library not loaded: /usr/local/lib/TESTLib.dylib
Referenced from: /Users/***/Library/Developer/Xcode/DerivedData/TestingDYLIB-axmoocnxbwznoyerfogosumqufxc/Build/Products/Debug/TestingDYLIB.app/Contents/MacOS/TestingDYLIB
Reason: image not found
También creé una fase de Copiar archivo y configuré el destino en "Frameworks". Todavía me sale el mismo error. ¿Qué estoy haciendo mal? Gracias.
Xcode está buscando en /usr/local/lib/
para la biblioteca. Si la biblioteca está en otra ubicación, agregue esa ubicación a sus Rutas de búsqueda de la biblioteca:
- Seleccionar archivo de proyecto en Xcode 4
- Seleccione el objetivo, luego haga clic en la pestaña Crear configuración
- Asegúrese de que Todo esté seleccionado en la barra de filtro (no Básico)
- Desplácese hasta la sección Rutas de búsqueda y encontrará las Rutas de búsqueda de bibliotecas allí.