ios - Error: ld: biblioteca no encontrada para-lPods con CocoaPods
objective-c dtcoretext (11)
Asegúrese de que está abriendo el archivo .xcworkspace, no el archivo .xcodeproj
Después de instalar DTCoreText ( https://github.com/Cocoanetics/DTCoreText ) con Cocoapods, siempre recibo un error cuando intento ejecutar el simulador o el dispositivo.
ld: warning: directory not found for option ''-L/Users/example/Desktop/ios/Pods/build/Release-iphoneos''
ld: warning: directory not found for option ''-L/Users/example/Desktop/ios/Pods/build/Debug-iphoneos''
ld: library not found for -lPods-example
clang: error: linker command failed with exit code 1 (use -v to see invocation)
en mi "Enlace binario con bibliotecas", la parte "libPods" es roja:
Aquí están mis configuraciones de compilación:
Los ajustes de mi proyecto:
La configuración de mis Pods:
EDITAR:
No estoy exactamente seguro de cuál era el problema, pero lo resolví cuando borré todo el contenido de DTCoreText y Cocoapods y reinstalé todo de nuevo.
Asegúrese de que la biblioteca de vainas faltantes se construye realmente. Para ello, abre el esquema de construcción.
Product > Scheme > Edit Scheme... > Build
agregue el objetivo de Pods y colóquelo antes del objetivo que se quejó de la falta de la biblioteca (en mi caso, estas fueron las pruebas de interfaz de usuario; simplemente luché con esto durante horas ...)
Busque la "Ruta de búsqueda de la biblioteca" en la página Configuración de compilación de su objetivo. cambie el nombre de la carpeta Depurar de Debug-iphoneos a Debug-iphonesimulator
Cuando use la extensión de la aplicación, navegue hasta el destino de la extensión y filtre a la Ruta de búsqueda de la biblioteca, elimine la ruta que le envió la advertencia del compilador.
Descubrí que faltaba $(inherited)
de mi configuración de compilación de Otros indicadores de vinculador . La aplicación de esta opción solucionó un problema de biblioteca faltante que estaba viendo.
Descubrí que seleccionar "Buscar dependencias implícitas" (bajo el esquema de producto / edición) resolverá este problema en lugar de tener que agregar pods como objetivo.
En mis binarios enlazados tuve tanto libPods.a
como libPods-MyProj.a
. Anteriormente había actualizado mi Podfile para tener DOS objetivos separados (para obtener pruebas de compilación en Swift con puente), lo que significaba que tenía que eliminar manualmente la antigua dependencia lidPods.a
.
Hay tantas razones causaron este problema.
Necesitamos comprobar:
- Configuración de compilación
$(inherited)
- Detectar todas las dependencias implícitas.
- .......
Solución de problemas : http://guides.cocoapods.org/using/troubleshooting.html
Para mí, el error fue: que el objetivo de Pods no contenía el segmento de arquitectura requerido para i386. Así que hice clic en el proyecto Pods -> Pods-ProjectName target, y en Build Settings, cambié Build Active Architecture Only a NO tanto para Debug como para Release . Esto asegura que tanto el simulador como los segmentos del dispositivo estén construidos. El simulador usa la arquitectura i386 y los dispositivos reales usan x86-64. Por lo tanto, debe asegurarse de que todos los destinos dependientes para todos los proyectos dependientes estén construyendo ambos, si desea ejecutar tanto en el simulador como en la carga lateral a dispositivos también.
Sugiero probar lo siguiente, que funcionó para mí:
a) Busque en ''Biblioteca'' desde la vista Configuración de destino y haga doble clic para inspeccionar el valor de las Library Search Paths
de Library Search Paths
b) Hay dos valores listados $(inherited)
y $(PROJECT_DIR)/Pods/build/Debug-iphoneos
. Eliminar el último.
c) Hacer una limpieza completa, construir y ejecutar
d) Ejecutar pod install
nuevo la pod install
. Observe que la entrada no se restaura.
También esto puede ayudar:
- En su proyecto principal (no en Pods) seleccione el objetivo principal
- Ir a la pestaña Fases de compilación
- Ir a enlace binario con bibliotecas
- Elimine la biblioteca que está causando el problema (probablemente sería de color rojo)