Xcode - ld: biblioteca no encontrada para -lPods

185

Recibo estos errores cuando intento crear una aplicación para iOS.

ld: library not found for -lPods
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Ld /Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Products/Debug-iphonesimulator/Totalbox.app/Totalbox normal x86_64
cd /Users/Markus/Development/xcode/totalbox-ios
export IPHONEOS_DEPLOYMENT_TARGET=7.1
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -isysroot 
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk -L/Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Products/Debug-iphonesimulator -F/Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Products/Debug-iphonesimulator -filelist /Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Intermediates/Totalbox.build/Debug-iphonesimulator/Totalbox.build/Objects-normal/x86_64/Totalbox.LinkFileList -Xlinker -objc_abi_version -Xlinker 2 -ObjC -framework CoreGraphics -framework Foundation -framework MobileCoreServices -framework QuartzCore -framework Security -framework SystemConfiguration -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=7.1 -framework CoreGraphics -framework UIKit -framework Foundation -lPods -Xlinker -dependency_info -Xlinker /Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Intermediates/Totalbox.build/Debug-iphonesimulator/Totalbox.build/Objects-normal/x86_64/Totalbox_dependency_info.dat -o /Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Products/Debug-iphonesimulator/Totalbox.app/Totalbox

PODS ROOT en la configuración de compilación:

${SRCROOT}/Pods

No creé este proyecto Xcode, solo lo saqué de git para verificarlo.

mrks
fuente

Respuestas:

601

Si el proyecto usa CocoaPods, tenga en cuenta que siempre debe abrir el .xcworkspacearchivo en lugar del .xcodeprojarchivo.

H6.
fuente
2
También me pareció útil construir el objetivo del pod, no el objetivo normal de Xcode.
Don Simon
1
Después de abrirlo, no puedo ejecutar mi proyecto en absoluto. ¿Qué tengo que hacer?
Inuyasha
Noté que una referencia a Podsestá en el .xcodeprojpero no en el .xcworkspace, por lo tanto, por qué funciona esta solución.
Jacksonkr
1
Cd en la carpeta del proyecto y ejecute "pod update". Si no tiene pod, busque cómo instalarlo.
justinkoh
2
Recibí ese mensaje de error al abrir .xcworkspace (para ser más específicos, esto funcionó una vez en una Mac y no en la otra). En mi caso, encontré el problema relacionado con cambiar el nombre de un proyecto y luego copiarlo en una computadora diferente , las bibliotecas no se copiaron en la nueva ubicación. comparar: /Users/[USERNAME]/Library/Developer/Xcode/DerivedData/[OLDPROJECTNAME]-[LONGRNDCHARS]/Build/Productsa:/Users/[USERNAME]/Library/Developer/Xcode/DerivedData/[NEWPROJECTNAME]-[LONGRNDCHARS]/Build/Products
Yatko
97

Tenía este problema también. Algo estaba mal con mi instalación de CocoaPods. No se instalaron correctamente otros módulos que no sean KIF. Seguí los comentarios en este hilo para ser de ayuda.

Básicamente, necesitaba asegurarme de que las Build Active Architectures Onlyconfiguraciones tanto para mi proyecto como para el proyecto Pods fueran iguales.

Persona maravillosa
fuente
77
Tenía que asegurarme de que también fuera igual entre los objetivos de mi proyecto y los objetivos del grupo ...
Nimrod Shai
Esto me sucede una vez cada 6 meses, y nunca puedo recordar cómo lo resolví la última vez ... Crear solo arquitectura activa. . . Que todos recordemos
Kanongata
51

Después de horas de investigación, esta solución funcionó para mí:

(descargo de responsabilidad: los resultados pueden variar debido a las circunstancias)

el Library not found -lPods-(someCocoapod)error se debió a múltiples entradas en:

Settings(Target) > Build Settings > Linking > 'Other Linker Flags'

Muchas otras publicaciones me hicieron mirar allí y vería cambios en el error cuando jugaba con las entradas, pero seguía recibiendo algunas variaciones sobre el mismo error.

Demasiadas horas perdidas ...

Mi solución:

elimine las líneas -lPods- (someCocoaPod) en la lista 'Otros indicadores del vinculador' PERO solo si $ (heredado) está en la parte superior. Al principio no estaba seguro, pero la señal tranquilizadora era que todavía veía referencias a mis cocoapods cuando salí del modo de edición (heredado). Probé en depuración y lanzamiento, los cuales me daban errores, y el problema se resolvió de inmediato.

Damote
fuente
Trabajaron como un encanto, gracias. Solo tuve este problema al actualizar a Swift 2.0 en El Capitan. Funcionó perfectamente antes.
Ovi
Solo tengo $ (heredado) y al mismo tiempo tengo estos engaños frustrantes. ¿Dónde puedo editar el valor original de la variable $ (heredada)?
nickolay
Me salvaste el día, hombre ... atrapado en este problema por un tiempo ... sucedió porque eliminé todo el proyecto de pod y lo volví a agregar
Mihir Mehta
Arreglado para mí también. ¡Nunca lo habría descubierto por mi cuenta!
bmueller
¡Vences! Funciona como un encanto
Rob Sanders
31

Parece que el proyecto ha estado usando cocoapods . y que faltan archivos de su proyecto.

No puedes simplemente descargarlo desde git. Necesitas instalarlo desde cocoapods.

para obtener más ayuda, puede seguir el Tutorial de Introducción a CocoaPods

Si el proyecto usa, CocoaPodstenga en cuenta que siempre abra el .xcworkspacearchivo en lugar del .xcodeprojarchivo

Rahul Patel
fuente
1
@RahulPatel Cómo instalar el archivo en particular, ¿puede compartir el comando
Ashok Londhe
Si desea utilizar la nueva versión beta, puede utilizar:pod 'GoogleAds-IMA-iOS-SDK-For-AdMob', '3.0.beta.16'
Berendschot
27

Si tiene múltiples objetivos en su proyecto, Cocoapods puede haberse integrado bien solo con uno de ellos.

Tuve que vincular manualmente libPods.aen "Vincular binario con bibliotecas" para cada objetivo adicional que tenía.

libPods.a en mi lista de frameworks

Rizwan Sattar
fuente
Creo que la vaina de instalación no se integra archivo libPods.a a todos los objetivos, Como Rizwan isntruction he añadido y funciona ... Gracias Rizwan Sattar
Wagh
Esto funcionó para mí, aunque no se mostró en rojo. Ejecuté pod install luego y no lo agregó, todo parece funcionar.
Jules
2
En realidad, lo que tenía que hacer era eliminar una biblioteca obsoleta (my-project-name) .a porque cambié el nombre del proyecto antes y simplemente estaba atascado allí. Elevé tu respuesta porque me dio una idea de dónde podría estar el problema.
kalafun
¡Eres un salvavidas!
Yuliwee
24

Mi problema se había solucionado con la siguiente configuración:

Build Active Architecture Only: YES
Durul Dalkanat
fuente
Esto funcionó para mí cuando encontré un problema con SDWebImage ... para aquellos que han encontrado su camino aquí para ese componente Cocoapod
Scott D
Esto resuelve ese problema para mí, pero causa otro. Necesito construir para todas las arquitecturas, no solo la activa.
HotFudgeSunday
En un código antiguo estoy integrando pods. Estoy enfrentando el mismo problema. La respuesta anterior ayudó.
Shashank Kulshrestha
15

Si alguien vino aquí para resolver un error react-native-fbsdkdespués de instalarlo usando Cocoapods, tenga en cuenta que debe eliminar todos los demás archivos .a en las fases de compilación de Proyectos y solo mantener el .a de los cocoapods llamados libPods-WhateverAppName.a.

Solo eso queda aquí

Esto generalmente se debe a la ejecución rnpm linky al funcionamiento de rnpm.

Después de que eliminé el archivo .a de Facebook Core de mis fases de compilación, mi proyecto volvió a funcionar.

SudoPlz
fuente
11

Este problema relacionado con lPods se puede solucionar siguiendo los pasos a continuación.

  • Seleccione su objetivo de proyecto.
  • Ir a "Build Phases"en "Link Binary With Libraries".
  • Ahora elimine el ".a"archivo de esa biblioteca que está creando el problema.
  • Limpiar y construir.

Esto funcionará

Abuzar Amin
fuente
En mi caso, la eliminación libstdc++.6.dylibsolucionó el problema.
Igor de Lorenzi
Cómo y dónde eliminó el "libstdc ++. 6.dylib", ya que necesito eliminar el "-lstdc ++. 6". Recibo la "biblioteca no encontrada para -lstdc ++. 6"
Hari Narayanan
10

Ninguna de las respuestas anteriores me lo arregló.

Lo que hice en su lugar fue ejecutar pod installcon un podcomando fuera de la targetsección. Así por ejemplo:

#WRONG
pod 'SOMEPOD'

target "My Target" do
    pod 'OTHERPODS'
end

Rápidamente lo arreglé y devolví la cápsula errante a la targetsección donde pertenecía y volví a correr pod install:

# CORRECT
target "My Target" do
    pod 'SOMEPOD'
    pod 'OTHERPODS'
end

Pero lo que sucedió mientras tanto fue que la -libPods.abiblioteca se agregó a mis bibliotecas vinculadas, lo que ya no existe y no debería, ya que ya -libPods-My Target.aexiste.

Entonces, la solución fue ir a la configuración general de mi destino e ir a marcos vinculados y bibliotecas y simplemente eliminar -libPods.ade la lista.

salsa
fuente
Instalé cocoapods correctamente para mi proyecto, pero tuve el mismo error que el OP. Eliminar -libPods.a lo resolvió por mí. Gracias amablemente, señor.
NKorotkov
Estaba actualizando un proyecto antiguo, deseché el viejo Podfile y corrí pod initpara configurar uno nuevo, y descubrí que el archivo antiguo era como tú # WRONG, y el nuevo archivo es como # CORRECT. ¡Gracias!
BJ Miller
8

Mis pasos

  1. Elimine la carpeta de pods y el archivo 'Pods'.
  2. Escriba "pod install" en la Terminal.
  3. Escribe "pod update" en la Terminal.

Además de asegurarse de que "Construir arquitecturas activas" estaba establecido en SÍ, como se mencionó en las respuestas anteriores, esto fue lo que lo hizo por mí.

David Liu
fuente
+1 En mi caso, si es -lHelpshifto nombre específico de pod. Luego elimino solo una carpeta específica, así es Pods/Helpshift. Entonces hazlo de pod installnuevo. No es necesario actualizar. Ahora funciona.
haxpor
1
Eliminar todos los pods y luego reinstalar ayudó.
Sanad Liaquat
7

Tenía un mismo problema después de la actualización Deployment targeta partir 7.0de 8.0y permitiendouse_frameworks!

cocoapodsno eliminé PodName.aarchivos generados previamente de la Frameworkssección de mi proyecto.

Así que tuve que eliminarlos manualmente, porque causaron el linker error

Tim
fuente
4

Elimine todos los archivos / carpetas correspondientes de la fuente de cocoapods importados, excepto el archivo de pod.

install cocoapod nuevamente. Esto debería eliminar cualquier extracción redundante de la fuente original.

thatzprem
fuente
3

Cuando clonas un proyecto desde un lugar que usa Cocoapods, debes instalarlos en tu proyecto.

Aquí paso a paso lo que debe hacer:

  • 1) clonar el código fuente a la máquina local;
  • 2) cierre el proyecto xcode (si está abierto);
  • 3) instale la aplicación cocoapods en su mac ejecutando este comando en la terminal: " gem install cocoapods ", agregue " sudo " al principio si no funcionó;
  • 4) vaya a la raíz de su proyecto xcode usando el comando " cd " en la terminal;
  • 5) debería tener Podfile en esta carpeta; si desea verificarlo dos veces , use: comando " cat Podfile ", mostrará el contenido de este archivo con las Bibliotecas que deberán instalarse en su proyecto;
  • 6) luego use el comando " pod install " para descargar e instalar las Bibliotecas en su proyecto; la Podfile.lock será creado y {} Su nombre del proyecto .xcworkspace archivo;
  • 7) a partir de ahora debe usar {Su nombre de proyecto} .xcworkspace para abrirlo en xcode;

¡Buena suerte!

Renat Gatin
fuente
3

Este fue mi problema al intentar integrar Firebase a mi proyecto Xcode usando cocoapods

library not found for -lGoogleToolboxForMac
linker command failed with exit code 1 (use -v to see invocation)

Después de horas de buscar y probar varias soluciones enumeradas en el stackoverflow, mi problema finalmente se solucionó siguiendo los pasos

  1. Ir a Build Settings, buscar Other Linker Flags, eliminar todos los valores esperados$(inherited) Imagen

Haz esto para todos los objetivos.

  1. Eliminar la carpeta de pods. ( ios/Pods)
  2. Hacer pod update

Voila! Todos los errores del enlazador desaparecerán.

Hariks
fuente
Esto también tenía que pasar para mí. Sin embargo, también en mi caso fue una aplicación nativa de reacción agregada Firebase Analytics. A partir de julio de 2018, todas las aplicaciones deben estar compiladas con iOS 11 por Apple: developer.apple.com/ios/submit/ Una vez que fui a mi pestaña General y me desplacé hacia abajo a Información de implementación / Objetivo de implementación y lo cambié de 10.x que es lo que estaba apuntando, a 11.x - la aplicación construida / archivada y pude enviarla.
bo_
2

Para mí, seguir había funcionado.

  1. Vaya a "Objetivo del proyecto -> Configuración de compilación -> Preprocesamiento -> Macros de preprocesador". Establezca "COCOAPODS = 1" en todas las versiones de depuración, integración y publicación en "Macros de preprocesador"
  2. Agregue lo siguiente en "Otros indicadores de vinculador" en "Objetivo del proyecto"
    1. $ heredado
    2. -ObjC
    3. -lc ++
    4. -todos_cargados

Limpia y ejecuta el proyecto. Si el error sigue recibiendo el mismo, intente configurando "Objetivo del proyecto -> Configuración de compilación -> Construir arquitecturas activas solamente", establezca "Depurar" en "SÍ" y establezca "Integración y liberación" en "No". Luego, repita la misma configuración de "Construir arquitecturas activas solamente" para todos los "Objetivos de pods"

Limpia y ejecuta el proyecto. Si recibe el siguiente error

 No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386).

Entonces intente la respuesta del Sr. Mike en este enlace

Xcode 5.1: no hay arquitecturas para compilar (ONLY_ACTIVE_ARCH = YES, active arch = x86_64, VALID_ARCHS = i386)

¡Espero eso ayude!

Sakthimuthiah
fuente
2

En un proyecto con múltiples objetivos tuve el mismo problema después de cambiar el esquema y el nombre de la aplicación e intenté actualizar los pods. El problema se debió a múltiples entradas en Fases de compilación -> Enlace binario con bibliotecas donde se enumeraban tanto la biblioteca .a anterior como la actual, mientras que la anterior ya no existía. La eliminación de la biblioteca de allí solucionó el problema.

Shardon
fuente
1

Mi manera

  1. cree un nuevo proyecto e instale el pod, se ejecutará sin error.

  2. Copie el texto en "Otros indicadores de vinculador" en el proyecto nuevo al proyecto anterior. Hacer proyecto antiguo al mismo proyecto nuevo.

  3. Verifique también "Rutas de búsqueda de encabezado".

Supapon Pick Pucknavin
fuente
1

Para mí esto ha funcionado. He cambiado el nombre de mi aplicación de someApp a otherApp. Y estoy usando vainas de cacao para la integración de múltiples servicios de terceros. Entonces, debido a que se agregaron 2 archivos libPod (como he cambiado el nombre y el destino de la aplicación). Finalmente tuve que eliminar un libPod. Y funcionó.

destino-> Fases de construcción-> Enlace binario con bibliotecas

Narasimha Nallamsetty
fuente
1

Tengo el mismo error.

El problema : creé un espacio de trabajo separado y agregué mi proyecto existente. Recibí el error cuando trabajé en ese espacio de trabajo.

La solución : más tarde descubrí que Workspace se crea automáticamente dentro del proyecto existente cuando se agregan dependencias. Y tiene que trabajar en ese espacio de trabajo.

Vasanth
fuente
Esta respuesta no indica claramente cómo solucionar la pregunta que se ha formulado
Mark
1

La siguiente solución funcionó para mí para la versión core-plot 2.3. Realice los siguientes cambios en la sección de otras banderas de enlazador.

1.Agregue $ (heredado) y arrastre este elemento a la posición superior 2.Quite el prefijo "Pods-" de -l "Pods-fmemopen”, l "Pods-NSAttributedStringMarkdownParser” y -l "Pods-MagicalRecord”.

si el problema persiste, finalmente vea si PODS_ROOT está configurado o no. Puede verificarlo en la sección definida por el usuario.

Saikiran K
fuente
1

Yo tuve el mismo problema

la instalación de pod y la actualización de pod en la línea de comando resuelven mi problema

tamtoum1987
fuente
1

Si el proyecto usa CocoaPods, tenga en cuenta que siempre abra el archivo .xcworkspace en lugar del archivo .xcodeproj. si está utilizando .xcworkspace, por favor reinstale el archivo pod eliminando los pods e inserte nuevamente los pods e instálelo. esto funcionó para mí

Chintu el chico genial
fuente