Marco no encontrado GoogleToolboxForMac


82

Después de actualizar mi Firebase a través de la "actualización de pod", recibí un error como este:

ld: warning: directory not found for option '-F/Users/bennysantoso/Library/Developer/Xcode/DerivedData/FCM-atfcxuircoryufazlomgwfgmvaqm/Build/Products/Debug-iphonesimulator/GoogleToolboxForMac'
ld: framework not found GoogleToolboxForMac
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Aquí mi Podfile:

# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
pod 'Firebase/Core'
pod 'Firebase/Messaging'

target 'BB' do
  # Comment this line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for BB

  target 'BBTests' do
    inherit! :search_paths
    # Pods for testing
  end

  target 'BBUITests' do
    inherit! :search_paths
    # Pods for testing
  end

end

¿Alguien sabe de este error?

Busco relaciones GoogleToolboxForMac y Firebase, pero solo obtengo un poco de información.

FYI, uso Swift 2.3 y Firebase 3.8.0.

Estaré agradecido por cualquier ayuda que pueda brindar. ¡Gracias!


2
Lo mismo para mí ... ¿alguien puede ayudar? He estado todo el día trabajando en esto: / Me doy cuenta de que el uso de versiones anteriores de la misma biblioteca no usa GoogleToolboxForMac y funciona perfectamente :(
Santi Iglesias

De otras respuestas de stackoverflow, he intentado agregar todo lo siguiente a mi archivo de pod pero aún no funciona: pod 'Google / Analytics' pod 'Firebase / Core' pod 'Firebase / AdMob' # Intentando reparar el error faltante de GoogleToolboxForMac pod 'Firebase / Messaging 'pod' GoogleToolboxForMac / Logger 'pod' GoogleToolboxForMac ',' ~> 2.1 '
Charlie Seligman

En primer lugar, el formato de su Podfile es antiguo (cuarto trimestre de 2016). Elimínelo y cree uno nuevo usando 'pod init'. Utilice el espacio de trabajo, no xcodeproj, como se sugiere a continuación.
igraczech

Respuestas:


168

Yo tenía el mismo error. Una vez que instale los pods, verá el siguiente mensaje.

[!] Cierre todas las sesiones actuales de Xcode y utilice MyApp.xcworkspace para este proyecto a partir de ahora.

No noté esto por primera vez y estaba tratando de construir el proyecto usando el archivo xcodeproj normal. Después de ver este mensaje, abrí el proyecto correcto y funcionó bien.

Una vez que abra este proyecto, notará que tiene dos subproyectos. Uno sería su proyecto y otro sería el proyecto Pods.


40

Marco no encontrado

Cuando usamos Pods, generalmente nos enfrentamos a este problema.

Existen dos motivos principales para esto

  1. Cuando abrimos el archivo .xcodeproj en lugar de .xcworkspace como lo menciona izaaz-yunus en esta respuesta

  2. Cuando Build Active Architecture Only se establece en en Build Settings

    Esto se aplica al objetivo del proyecto y también a todos los objetivos del proyecto de pod.

Captura de pantalla del proyecto principal Establezca Construir solo arquitectura activa en No

Captura de pantalla del proyecto Pod ingrese la descripción de la imagen aquí

  1. Seleccione Configuración de compilación (del proyecto principal, proyecto de pod ambos)
  2. Seleccione cada objetivo uno por uno
  3. Establezca Construir arquitecturas activas en No para cada objetivo

Finalmente limpia y reconstruye tu proyecto.


hay un error tipográfico, en el n. ° 2 dices "sí" pero en la imagen se muestra "no", gracias @Vinay Kumar
greenridinghood

# 2 dice qué está causando el problema y la imagen es cómo deberían verse las configuraciones para que se resuelva el problema
Vinay Kumar

Todas las demás soluciones no funcionan para mí, excepto: configure Build Active Architecture Only en NO para todas las bibliotecas de pod
tamtoum1987

18

En mi caso, toda la integración está bien hecha y también intenté muchas veces eliminar y reinstalar el pod, pero no tuvo éxito.

Finalmente intente con el siguiente paso

Projetc-> Administrar esquemas -> Seleccione la casilla de verificación "Pods-MyProjectName"

Y consiga el éxito.


Recibí este error al ejecutar en el simulador, pero no lo obtuve en un dispositivo real.
mpwhitt

Esto funcionó para mí, pero también tuve que construir el proyecto de pods explícitamente antes de intentar construir mi proyecto. No tengo idea de por qué.
pieSquared

1
¿Hice esto pero no puedo ejecutar la aplicación en mi simulador?
Drailan John Terrible

2
Después de crear "Pods-ProjectName" pude ejecutar el proyecto real en mi dispositivo.
Tim Baas

14

GoogleToolboxForMac es una dependencia de Firebase / Messaging. Detalles en podspec . Al realizar una "actualización de pod", Cocoapods debe configurar su espacio de trabajo para crear y vincular GoogleToolboxForMac.

Parece que algo en su espacio de trabajo está en mal estado. ¿Ayuda Producto -> Limpieza? ¿Qué pasa con la eliminación de datos derivados y ModuleCache (Xcode -> Preferencias -> Ubicaciones -> Datos derivados)?

No debería ser necesario, pero también puede intentar agregar explícitamente el pod 'GoogleToolboxForMac / Logger' a su Podfile.


No, esto no funcionó para mí ... ¡al abrir el proyecto desde el espacio de trabajo funcionó!
Jayprakash Dubey

2
@JayprakashDubey Esta respuesta asume que está comenzando desde el espacio de trabajo. Vea el primer párrafo. La respuesta resuelve otro escenario que conduce al mismo síntoma.
Paul Beusterien

1
@PaulBeusterien Intenté todo lo que dijiste aquí, pero aún así, no puedo construir.
Drailan John Terrible

6
funciona
1. seleccione su proyecto en directorios
2. seleccione General
3. Agregue "GoogleToolboxForMac.framework" a los "frameworks y bibliotecas" vinculados

Vincular la biblioteca lo resolvió explícitamente para mí. ¡Gracias!
Liquinaut

5

Esto se solucionó agregando $ (heredado) en la Configuración de compilación -> Buscar LIBRARY_SEARCH_PATHS.

Esto es comprensible, ya que al actualizar su archivo de pod para las últimas versiones de las bibliotecas de las que depende su proyecto, la salida de depuración le indica dónde debe agregar todas las marcas $ (heredadas): LIBRARY_SEARCH_PATHS OTHER_LD_FLAGS GCC_PREPROCESSOR_DEFINITIONS


¿Dónde poner el $ (heredado) debo presionar + y luego escribir $ (heredado)?
Drailan John Terrible

Sí, puede presionar + e ingresar $ (heredado) o simplemente hacer doble clic en el cuadro editable y luego puede ingresar $ (heredado)
TomV

¡Esto solucionó mi problema! Gracias @TomV
Spettacolo83

2

Vaya a: target -> Build Settings -> Other Linker Flags -> remove framework "GoogleToolboxforMAC"y cree el proyecto.


1

Tuve el mismo problema cuando intenté ejecutarlo en mi dispositivo. En el simulador estaba funcionando bien. Probé algunos de los anteriores pero no me funcionó. Verifiqué que estaba trabajando en .xcworkspacelugar de .xcodeprojarchivo, así que probé este. Siga estos pasos para:

  1. Abra el proyecto Xcode (proyecto cocoapods) usando el archivo .xc ...
  2. Seleccione el proyecto Pods en el navegador de proyectos (icono azul a la izquierda).
  3. En Objetivos, asegúrese de que Pods-ProjectName (icono azul) esté seleccionado.
  4. Vaya a Configuración de compilación y establezca el objetivo de implementación de iOS en la versión de iOS en la que va a ejecutar el proyecto.

Nota: Es igual a lo que estableciste Project->Targets->Deployment info->Deployment Target.

Quizás alguien se beneficie de esto.


1

Si se enfrenta al mismo error, en su XCode, vaya a:

Su proyecto > su objetivo > Desplácese hacia abajo hasta Linked Framework and Libraries y verifique si la entrada de la biblioteca está atenuada:

Captura de pantalla de XCode Linked Framework and Libraries

Si es así, retírelo y vuelva a agregarlo. En mi caso, tenía entradas duplicadas y una de ellas estaba atenuada (cuando XCode no puede encontrarlas en el disco).


0

Cerré el proyecto que estaba tratando de construir después de instalar el pod, luego abrí el .workspace y luego todo se construyó perfectamente.


0

Abra your-project.xcworkspace en el destino de su proyecto.

1) Abrir terminal -> 2) $ cd / project_destination -> 3) $ abrir su-proyecto.xcworkspace

o simplemente abre el archivo en el buscador


0

Asegúrese de que la configuración de "Construir arquitectura activa" para el objetivo del proyecto y el pod sea la misma. Establecer NO en ambos casos solucionó mi problema.


0

Mi problema era que tenía un script / bin / sh que copiaba Pods específicos que no existían. Este era uno de ellos. La eliminación del script resolvió el problema de compilación.


0

-Busco en el disco duro los archivos de GoogleToolboxForMac, que se encuentran en: / Users / Marco / Documents / iosapps / BomRetiro / Bom Retiro / Pods / Target Support Files

  • Y luego copié los archivos en esta carpeta: / Users / YourHomeFolder / Library / Developer / Xcode / DerivedData / Bom_Retiro-bsfjbazzzuwmuidqurdmjvdtnnsb / Build / Products

Y luego para mí se resuelve abriendo el archivo usinf .xcworkspace del proyecto.


0

Para aquellos que todavía tienen problemas después de todo esto. Estoy trabajando en un proyecto de Córdoba y el problema apareció de repente después de actualizar a XCode 11.5.

Finalmente pude resolverlo abriendo el archivo pods.json en la raíz del proyecto y eliminando la entrada en "bibliotecas" que pertenece a "FirebaseMessaging". No estábamos usando eso y no sé cómo llegó allí. Además, he cambiado la "Configuración de construcción" -> "Construir solo arquitectura activa" a "No" en todas partes.

Luego abrí el archivo .xcworkspace nuevamente y la compilación se ejecutó.


-1

Respuesta simple de Swift 5

Shift+Alt+Cmd+K  //Clean the project and Run again! 
//if not work restart Xcode and again clean it 
//Its will work happy coding

-6
    Friends, you must be confused with the exact result, as i was. So, i feel to share the 
screenshot that might be helpful. We all had to be careful that we need to change the flag for property **"Build Active architecture Only"** for **pod target** to **NO** And build, it would not show the linking error.

    See the attached screenshot.
    Screen Shot 1, Screen Shot 2, Screen Shot 3
    [Select Pods][1]
    [Select Targets in the pod][2]
    [Change flag to No][3]


  [1]: https://i.stack.imgur.com/E7mjX.png
  [2]: https://i.stack.imgur.com/wCwET.png
  [3]: https://i.stack.imgur.com/KVGKM.png

No publique capturas de pantalla completas, por favor proporcione solo una parte alineada, amigo mío.
igraczech

Esto funcionó, aunque sería mejor explicar las soluciones en lugar de publicar las capturas de pantalla. La solución es cambiar el arco válido solo a "No" en los objetivos del proyecto y de los pods.
Ignacio Barrea
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.