Error "biblioteca no encontrada para" después de poner la aplicación en AdMob

150

Recibo un error después de colocar mi aplicación en AdMob. La aplicación funcionaba hasta hoy. El error es el siguiente:

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

¿Cómo puedo arreglar esto? Gracias.

ViniciusPV
fuente
A veces: desconecte su dispositivo y primero cree el proyecto. Generará bibliotecas y luego podrá ejecutar en el dispositivo.
TheTiger

Respuestas:

114

A veces, simplemente elimina la referencia de la biblioteca y agrega la referencia nuevamente.

Además de agregar el SDK de Google Mobile Ads y otras bibliotecas nuevamente desde cero, le recomendaría que revise las Rutas de búsqueda de la biblioteca . Hay casos en los que copia o duplica un objetivo, Xcode decide que necesita escapar de las comillas dobles "con un '\'. Asegúrese de eliminar todos los \ 's, debería verse así:

ingrese la descripción de la imagen aquí

Pude duplicar el error haciendo un prefijo de mi ruta con múltiples '\'.

raurora
fuente
bueno, después de la instalación del pod, una de las bibliotecas no estaba listada allí. No sé por qué, pero agregar esa ruta de biblioteca hace que funcione.
Warewolf
Bueno, esto solucionó mi problema "Biblioteca no encontrada para -lART" y ¡es realmente increíble! Gracias !
ZedTuX
Considere también las "Rutas de búsqueda de encabezado".
Luat Vu Dinh
@raurora ¿Cómo se accede a las rutas de búsqueda de la biblioteca?
Massimo Frittelli
1
Proyecto @MassimoFrittelli> pestañas Configuración de compilación> Rutas de búsqueda. También puede escribir en la opción de búsqueda.
Aurora
315

Tuve un problema similar de "biblioteca no encontrada". Sin embargo, fue porque accidentalmente estaba usando el .xcodeprojarchivo en lugar del .xcworkspacearchivo.

Casper
fuente
44
¿Alguien puede explicar el propósito de .xcodeproj y .xcworkspace?
EFreak
11
Cosas como esta me hacen amar el ecosistema Javascript
Mark
¿Cómo puedo cambiar eso ...?
Brayan Loayza
8
xcworkspace es cuando usas Cocoapods. No es un problema de Xcode, sino de los usuarios.
Azam
1
.xcworkspace es cuando tiene más de 1 "proyecto" dentro de su solución. Por ejemplo, puede tener bibliotecas externas (cocoapods) o su propia biblioteca que utiliza en muchos proyectos.
Daniel Benedykt
86

Seleccione su destino, vaya a "Build Phases"en "Link Binary With Libraries"quitar ".a"el archivo de la biblioteca. Limpiar y construir.

Abuzar Amin
fuente
3
Sí, lo suficientemente extraño como para que Xcode no lo marque como perdido al colorearlo en rojo
Brainray
¡¡Muy agradable!! mi problema fue cuando agregué el marco de usuario al proyecto anterior. Elimina coreplot.a y funciona bien !!!!
Jose Pose S
66

Si el error relacionado con Cocoapods es el siguiente:

library not found for -lPod-...

Debe verificar Otras banderas de vinculador y eliminarlo desde allí.

Información adicional: si tiene un proyecto antiguo que utiliza cocoapods. ¡Y recientemente necesitabas agregar use_frameworks! a tu podfile. cocoapods ya no agregará las bibliotecas a sus otras banderas vinculadoras porque las hereda. Por lo tanto, es posible que deba eliminarlos manualmente de los otros indicadores de enlace que se agregaron antes de usar use_frameworks.

Hasan
fuente
1
Tengo muchas banderas aquí, ¿debo eliminar todas o solo una para el Pod?
Mayur Deshmukh
Si esas banderas causan un problema. debe eliminarlos o conservarlos y agregar la biblioteca si aún desea usarla.
hasan
1
Supongo que eso sucede cuando intentas eliminar la biblioteca que agregan las vainas de cacao manualmente. La forma correcta es eliminar la biblioteca de su podfile. luego ejecutas la instalación de pod nuevamente
hasan
1
¡¡Gracias!! Esta fue una pista para mí :). ¡En mi caso, el objetivo duplicado ha dividido cada -l "marco" en dos líneas "-l" y "marco"!
Eva Madrazo
1
@IanSteffy solo combínalo
Eva Madrazo
57

Para mi caso Xcode 7 , también funcionó en Xcode 9.1

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

establecido Build Active architecture OnlyenYes

ingrese la descripción de la imagen aquí

Ted
fuente
2
¿Qué pasa cuando necesitamos crear una compilación de producción para App Store? Quiero decir que debería ser NO para la construcción de producción.
Jabbar
de acuerdo en que debería ser NO para la producción
Ted
2
¿Esto NO afectará a la instalación de construcción de producción?
Jabbar
1
Trabajó para mí al integrar Pinterest SDK en XCode 9.2 e iOS 11.
Aakash Aggarwal
21

Esto sucede si está usando cocoapods, use el .xcworkspacearchivo en lugar del .xcodeprojarchivo predeterminado .

ehacinom
fuente
15

Si el error es como seguir

ld: biblioteca no encontrada para -lpods

Descubrí que de alguna manera se creó un archivo "libPods.a" que está en color rojo (como los archivos faltantes) en el grupo Marco del proyecto. Simplemente eliminé ese archivo y todo salió bien.

EDITAR: otra solución

Otra solución que ya he respondido en la pregunta similar está en este enlace

Teena nath Paul
fuente
12

Ir a Fases de compilación -> Enlace binario con bibliotecas y eliminar biblioteca que muestra errores porque esa biblioteca no está disponible en la carpeta del proyecto

Hitesh Agarwal
fuente
Esto solucionó mi problema particular. Tenía dos bibliotecas con nombre similares, una con nombre libPods-Foo BarTests.ay otra con nombre libPods-FooBarTests.a.
edenwaith
9

Esto también puede suceder si abre un archivo de proyecto en lugar de un espacio de trabajo. He perdido como un día yo mismo de esta manera.

kkodev
fuente
1
excelente, también realicé la actualización del pod al cerrar el espacio de trabajo y luego lo abrí una vez que finalizó la actualización del pod
Badr
5

Tarde para la respuesta, pero aquí está la lista de cosas que probé, por lo que estará en un lugar si alguien quiere intentar solucionar el problema.

  1. Arquitectura válida = armv7 armv7s
  2. Construir solo arquitectura activa = NO
  3. Destino -> Configuración de compilación -> Otras banderas de enlazador = $ (heredado)
  4. Destino -> Configuración de compilación -> Ruta de búsqueda de biblioteca = $ (heredado)
  5. Producto limpio
  6. Actualización de pod en terminal
reetu
fuente
2

En mi caso hubo un problema de nomenclatura. Se llamó a mi biblioteca ios-admob-mm-adapter.a, pero Xcode esperaba que el nombre comenzara con el prefijo lib . Acabo de renombrar mi lib alibios-admob-mm-adapter.a y solucioné el problema.

Utilizo Cocoapods, y vincula las bibliotecas con la opción Otros indicadores de vinculador en la configuración de compilación de mi objetivo. La bandera se ve como-l"ios-admob-mm-adapter"

Espero que ayude a alguien más

Brillante brillante
fuente
2

Simplemente, GoogleAdMobAds.afalta en el objetivo del proyecto. Para mí fue libAdIdAccessLibrary.aPor favor verifique la captura de pantalla adjunta

ingrese la descripción de la imagen aquí

Ashvin Ajadiya
fuente
2

En cuanto a mí, este problema ocurre porque instalé Material Library para IOS. para resolver este problema

1: Vaya a Configuración de compilación de su aplicación de destino.

2: Buscar otras banderas de enlace

3: Abra los otros indicadores del vinculador y verifique la biblioteca que se menciona en el error.

4: eliminar esa bandera.

5: Limpiar y construir.

Espero que esto solucione tu problema.

Fahad Qasim
fuente
2

En el caso de que ld: library not found for -{LIBRARY_NAME}sucedió porque los archivos de la biblioteca no existen.

Verifique la ruta de la biblioteca en la pestaña Rutas de búsqueda de la biblioteca "Fases de construcción" de los objetivos de su aplicación.

La ruta de los archivos de la biblioteca debe estar de acuerdo con la ruta real, por ejemplo, si su archivo (s) en la raíz del proyecto debe establecer la ruta como $(PROJECT_DIR)

Reza Dehnavi
fuente
1

Sé que esto es un poco viejo, pero acabo de encontrar un problema similar y ejecutar 'pod update' me arregló esto. El error de mi biblioteca fue con AFNetworking ...

Solo tenga cuidado al actualizar el pod si no usa versiones explícitas en su archivo pod.

Trevor Panhorst
fuente
1

Este error es muy raro.

Tuve este error con -ldAfnetworking y solo copié mi proyecto en otra ruta y funciona.

A. Trejo
fuente
1

He intentado cambiar el nombre de mi configuración de generación Releasea Production, pero al parecer las vainas de cacao no le gusta. Lo renombré nuevamente Release, y todo funciona bien.

Aymeric Bouzy aybbyk
fuente
También podría haber cambiado el nombre del objetivo en el podfile.
Romain TAILLANDIER
1

La respuesta de @Rurora me apuntó en la dirección correcta. Estaba incluyendo bibliotecas en mi ruta "watchkitapp Extension / lib". En este caso, la ruta de búsqueda de la biblioteca debía escaparse con un '\', pero el enlazador no parecía entender esto. Para solucionar / solucionar el problema, moví mi ruta de acceso a la biblioteca un nivel para que ya no estuviera en un directorio que contenía un espacio en el nombre.

Justin Domnitz
fuente
1

Acabo de actualizar el archivo de pod 'actualización de pod' y comienza a funcionar para mí normalmente.

Chandni
fuente
1

La ejecución de 'pod update' en mi proyecto solucionó mi problema con el error 'biblioteca no encontrada para -lSTPopup'.

Observando la respuesta de Trevor Panhorst:

"Solo tenga cuidado al actualizar el pod si no usa versiones explícitas en su archivo pod".

Juan santos
fuente
1

Solución fácil Así es como solucionaría el problema:

  1. Ir al directorio platforms/ios
  2. Luego, ejecuta el comando pod install

Eso es. Esto debería instalar la biblioteca que falta.

Manoj Shrestha
fuente
1
  1. Carpeta de compilación limpiada
  2. Reinició XCode

Se fue...

batthis
fuente
1

Es un error de tiempo de compilación para un Static Libraryque es causado porStatic Linker

ld: library not found for -l<Library_name>
  1. Puede obtener el error Library not found forcuando no ha incluido una ruta de biblioteca alLibrary Search Paths

    ldsignifica Static Linkerque no puede encontrar una ubicación de la biblioteca. Como desarrollador, debe ayudar al vinculador y señalar elLibrary Search Paths

    Build Settings -> Search Paths -> Library Search Paths 
  2. También puede obtener este error si abre por primera vez un nuevo proyecto ( .xcodeproj) con soporte de Cocoapods, ejecute pod update. Para solucionarlo, simplemente cierre este proyecto y abra creado un espacio de trabajo en su lugar ( .xcworkspace)

yoAlex5
fuente
0

Estaba recibiendo errores similares en la biblioteca no encontrada. Finalmente, así es como pude resolverlo

  1. Antes de comenzar con Xcode Archive, usó flutter build iOS
  2. Cambió el objetivo de implementación de IOS a un objetivo superior iOS 11.2. Anteriormente tenía algo como 8.0, que daba todos los errores anteriores.
  3. Asegúrese de que los objetivos de implementación de IOS en Xcode sean los mismos en Project, Target y Pods
dnscode
fuente