ld: framework no encontrado Pods


234

Estoy tratando de agregar un marco a mi proyecto IOS pero cuando construyo siempre recibo el mismo mensaje:

ld: framework no encontrado Pods

clang: error: el comando del enlazador falló con el código de salida 1 (use -v para ver la invocación)

Traté de eliminar mi Podsdirectorio y luego lo ejecuté. pod install Lo abro .xcworkspacecomo está escrito en los registros de la instalación del pod, limpio el proyecto en xcode y luego intento compilar, pero no funciona.

Mi podfile se ve así:

xcodeproj '/Users/guillaume/project/Mobile/iOS/FoodPin/FoodPin.xcodeproj'
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
pod 'SwiftHTTP', '~> 0.9.2'

Mi versión de xcode es 6.3.1

Gracias,


1
¿Verificó que libpods.aestá en sus "Marcos y bibliotecas vinculadas" de su destino? ¿Y en tus fases de construcción también?
BoilingLime

¿Lograste resolver esto? Estoy teniendo el mismo error
Christopher Francisco

@ChristopherFrancisco Lo resolví, verifica mi respuesta.
Arbitur

1
¡ Cómo responder [1] resolvió mi problema! Espero que ayude [1]: stackoverflow.com/a/31161871/1557663
Mário Carvalho

@ MárioCarvalho Esa es solo una versión más larga y más amigable para principiantes de mi respuesta x)
Arbitur

Respuestas:


524

En Project Navigatorla carpeta Podstenía una Pods.frameworkallí que era roja. También estuvo presente en Linked Frameworks and Libraries. Eliminé ambas referencias y el error desapareció.

TL; DR

Eliminar Pods.frameworken:

  • Carpeta llamada Pods
  • Linked Frameworks and Libraries

55
¡Creo que terminé con este problema después de agregar use_frameworks! a mi Podfile y posteriormente comentarlo. Eliminar la referencia a Pods.framework solucionó el problema.
StephenT

2
@StephenT Sí, creo que eso fue lo que hice también, primero uso use_frameworks!y luego sin y quizás Pods.frameworkno se eliminó correctamente durante pod install. Podría ser un error en Cocoapods.
Arbitur

Esta es una buena respuesta, no afecta la aplicación de ejemplo, todavía funciona bien
Gabriel Goncalves

3
Si esto no funciona, intente usar cocoapods-desintegrate. Eso solo resolvió este problema para mí.
nickdnk

2
Después de ejecutar la instalación de pod, de alguna manera terminé con un archivo de marco "Pods_ <Nombre del proyecto>" en mi carpeta Pods. Eliminar este archivo, limpiar y reconstruir eliminó este error para mí.
Caleb Faruki

209

Esto generalmente es causado por tener el archivo .xcodeproj abierto en lugar de .xcworkspace.

Cuando ejecute 'pod install' por primera vez, creará un archivo .xcworkspace, que incluye su .xcodeproj original y un proyecto Pods. Tendrá que cerrar su .xcodeproj y abrir el espacio de trabajo .xcworks.

Este es un problema común al crear un proyecto a través del nuevo asistente de proyectos de Xcode: a menudo olvido que no estoy en un espacio de trabajo, que es necesario para que Cocoapods se vincule correctamente.


Gracias ! Me está confundiendo por primera vez
Phi Nguyen

66
Su explicación es mucho mejor de lo que he visto en otros lugares. No me di cuenta de lo que estaba pasando. ¡Gracias!
Michael Yaworski el

Cuando se realiza en combinación con la respuesta de Arbitur, esto resuelve el problema. ¡Gracias!
user1577390

Este fue exactamente mi problema. ¡Gracias!
Antonio Papalillo

No hay ningún archivo .xcworkspace dentro de mi proyecto. qué hacer
Kartiikeya

126

Xcode 9, 10, 11, 11.5

instalar https://github.com/CocoaPods/cocoapods-deintegrate

pod deintegrate

luego

pod install

1
¡Trabajado como un encanto! Gracias. Esto eliminó una antigua referencia a un objetivo renombrado que estaba causando este error.
Alex Obenauer

1
¡Eres mi héroe! ;)
Swissdude

1
¡Guau, me salvaste el día! se quedó atascado desde ayer y finalmente se resolvió con Xcode 10. ¡Gracias!
Purushottam Padhya

1
Esta debería ser la respuesta correcta, es el enfoque más seguro. No haga pasos manuales cuando use cosas automatizadas como CocoaPods, a menos que sea un error conocido que no se puede solucionar de otra manera.
Gobe

1
Este me ayuda, increíble amigo!
Sruit A.Suk

51

Eliminé este error eliminando los .frameworkarchivos rojos que estaban ubicados en una carpetaFrameworks en el project navigator. Creo que esto también eliminó automáticamente las entradas rojas correspondientes en la Linked Frameworks and Librariessección de la Generalconfiguración.

He estado limpiando / reinstalando pods para solucionar otro problema. ¿Quizás estos archivos y entradas de marco rojo fueron solo restos de una instalación previa de pod?


¡Si! ¡Mi problema estaba en los marcos vinculados y las bibliotecas de la configuración general y era difícil de encontrar ya que no aparece en una búsqueda de texto!
Alistair Cooper

En mi caso, los archivos de marco ni siquiera eran rojos, sino que solo estaban atenuados. ¡Pero eliminarlos parece haber solucionado el problema!
Estafador

29

Para quién encuentra este problema. Estoy usando NativeScript y obtuve el mismo error.

Eso sucede porque abrí el archivo .xcodeproj, pero debemos abrir el proyecto con el archivo .xcworkspace.


27

Esto me sucedió después de actualizar mi Podfile y hacer una actualización de pod.

Por alguna razón, aparecía un archivo de marco "Pods_ [ProjectName]" debajo de mi proyecto en 'Objetivos'> General> Marcos vinculados y bibliotecas.

Eliminar esto y luego limpiar / reconstruir solucionó el problema.


2
Esto sucede cuando cambia los nombres de los proyectos y necesita borrar el anterior. +1
Babbz77

Esto funcionó para mí. No cambié los nombres de los proyectos, pero agregué Swift a un proyecto Objective-C de larga ejecución.
Luffy

24

Tuve un problema similar a

framework not found Pods_OneSignalNotificationServiceExtension

Se resolvió eliminando lo siguiente. Vaya a OneSignalNotificationServiceExtension de destino > Crear fases> Vincular binario con bibliotecas y eliminar Pods_OneSignalNotificationServiceExtension.framework Debería estar vacío aquí. Espero que esto ayude. Salud.


Esto solucionó el problema para mí. Mi situación particular es que tenía un objetivo de iOS MyApp. Luego necesitaba crear un segundo objetivo y tenía los objetivos MyAppFirst, MyAppSecond. Cocoapods pudo construir lo que necesitaba (Pods_MyAppFirst, Pods_MyAppSecond) pero también estaba tratando de vincular a Pods_MyApp que ya no existía. Quiero señalar que en el proceso de tratar de arreglarlo, tiré mi archivo de espacio de trabajo y la carpeta Pods para que se volvieran a crear desde cero cuando realicé una "instalación de pod", pero eso no ayudó.
xdeleon

@Sharukh Mastan ¿Tendrías alguna idea de cómo hacer que esto suceda después de una instalación de pod? Cada vez que instalo el pod, Pods_OneSignalNotificationServiceExtension.framework vuelve a perseguirme en los marcos y bibliotecas vinculados del OneSignalNotificationServiceExtensionobjetivo.
Sethmr

@Sethmr Lamentablemente, no. En mi caso, sin embargo, no siempre sucede después de un pod install, es aleatorio.
Sharukh Mastan

@SharukhMastan Mi problema fue la apertura del *.xcodeproj/*.xcworkspacesobre el *.xcworkspacecon mis VSTS .yml script de automatización. Sé mejor con una interfaz gráfica de usuario, pero todavía me estoy acostumbrando a los requisitos en la creación de scripts.
Sethmr

15

Recibí este error porque cambié el nombre de mi proyecto y también cambié el nombre del proyecto en el archivo pod, pero mi proyecto se refería al nombre anterior que no estaba allí y causaba este error. Me deshago de esto por

pod deintegrate

seguido por

pod install

¡Si! Tuve el mismo problema al degradar la versión de 12.0 a 9.0. Lo anterior funcionó después de haber modificado la versión de destino en mi Podfile para que coincida con lo que estaba en el proyecto.
Richard Bown

Buena respuesta. Gracias.
whdals0

14

debe eliminar su proyecto de algún archivo como esta imagen.

debe eliminar los pods.framework y los pods marcan los archivos rojos


10

Simplemente elimine su .framework de la lista de "Su proyecto-> General-> Linked Framework & Libraries".


Eso fue todo, tuve dos después de cambiar el nombre del proyecto. ¡Gracias!
Jimmy

10

Nos ha pasado a mí porque he cambiado el Deployment Targeten General, pero se olvidó de cambiar el Deployment Targeten Pods > General. Cambiar el objetivo de implementación


También lo arregló para mí, Xcode 11.2 / Cocoapods 1.8.4. Irrita que el mensaje de error no se parezca a la causa raíz ...
Jonathan Ellis

1
Lo arreglé para mí: no tenía idea de que necesitaba cambiar esto en ambos lugares. ¡Gracias una tonelada!
hakazvaka

6

En mi caso, puedo construirlo en dispositivos y simulador, pero tiene los mismos errores al archivar. Para resolverlo, tengo que

  • eliminar Pods.framework
  • asegúrese de que Pods-<project-name>.frameworkesté incrustado

Encontrará la configuración en OBJETIVOS -> Marcos vinculados y bibliotecas.



4

Paso 1

Lo primero que deberá hacer es eliminar el Podfile, Podfile.lock, la carpeta Pods y el espacio de trabajo generado.

Paso 2

A continuación, en .xcodeproj, elimine las referencias a los archivos Pods.xcconfig y al archivo libPods.a.

Paso 3

Dentro de la pestaña del proyecto Build Phases, elimine la sección Check Pods Manifest.lock (abrir), la sección Copiar recursos de pods (abajo) y los recursos de pod incrustado (abajo).

Paso 4

Eliminar Pods.framework.

Lo único que puede hacer es incluir algunas de las bibliotecas que estaba usando antes. Puede hacer esto simplemente arrastrando las carpetas en las carpetas de pods a su proyecto (prefiero ponerlas en mi carpeta Archivos de soporte).

Funcionó para mi.


El paso 3 funcionó en mi caso, paso 3 -> cmd + alt + shift + k.
ViruMax

4

Es más que probable que intentes hacer que las cápsulas funcionen en tu proyecto, ¿verdad? La única forma de hacerlo es creando un proyecto separado que use CocoaPods.

Cierre todos los espacios de trabajo que está utilizando.

A continuación, asegúrese de tener su Podfile completamente listo para funcionar.

En la línea de comando, donde sea que esté su archivo, escriba el comando:

pod deintegrate

Luego, instala tu pod agian.

pod install or pod update

Ahora puede utilizar el nuevo espacio de trabajo de su proyecto para desarrollar. Busque un archivo llamado .workspace. ¡Usa ese archivo!

Aquí hay una guía sobre el uso de CocoaPods


Solo este funcionó para mí después de una lucha de 2 días con el error.
Mitesh Dobareeya

3

Usando Xcode 8.3, la respuesta aceptada no funcionó para mí. Había probado muchas otras soluciones, pero la respuesta de @Elliott Davies es lo que me solucionó. Estoy agregando una captura de pantalla para mayor claridad. Por alguna razón, Xcode estaba tratando de vincular configuraciones de podfile anteriores que ya no existían. Todo lo que tuve que hacer fue eliminar las referencias adicionales y todo funcionó.Captura de pantalla de bibliotecas y marcos vinculados de Xcode


3

Este problema me estaba volviendo loco, ya que de repente sucedió sin hacer ningún cambio en el proyecto. He intentado todas las soluciones sugeridas en este hilo (y otras relacionadas) y ninguna de ellas resolvió el problema.

Lo único que difería de mis otros proyectos (que se compilaron bien), fue que el nombre de este proyecto contenía un acento (un acento francés, "é"). Cambié el nombre del proyecto y todos los archivos relacionados, ¡y finalmente funcionó!

Tal vez esto esté relacionado con la actualización a Xcode 10, porque este proyecto funcionaba mucho antes ...

EDITAR: también parece fallar cuando se usa un proyecto con el -nombre del proyecto ...


1
Me salvaste la vida
Florian Mac Langlade

1
¡También me salvó la vida!
Dan

¿Alguna solución además de renombrar el proyecto?
anestesia

@anestis No lo creo. Para cambiar rápidamente el nombre del proyecto, sugiero comandos de esta respuesta stackoverflow.com/a/48004237/4894980 que hacen un gran trabajo.
AnthoPak

3

En mi caso, después de comparar la diferencia entre una rama que sabía que estaba construida correctamente, noté esta línea en mi Podfile:

platform :ios, '11.0'

Inadvertidamente, subí mi versión de destino de 10 a 11, mientras que mis objetivos en Xcode se mantuvieron configurados en 10. Volver a 10 resolvió mi problema.

Asegúrese de que las versiones de iOS de destino estén configuradas correctamente.


¡¡Salvaste mi día!! Gracias
Mayank Patel

3

Esta es la forma en que soluciono mi problema. y ahora funciona cuando escribo esta respuesta:

En primer lugar, intento todo lo más arreglado arriba,

eliminar Pods_xxx.framework de las bibliotecas de enlaces y el marco en las fases de compilación del objetivo es útil, y el problema desaparecerá, pero el problema es que ya no puedo importar Pods.framework.

Y luego, intento reiniciar la configuración de xcworkspace, para poder resolver el problema real. entonces corro

pod deintergate

y luego instalar mi pod nuevamente:

pod install

esto funciona de manera perfecta, pero el problema sigue ahí, pero descubrí que el verdadero problema es que Pods_xxx.framworks no se compilará correctamente mediante el script de construcción de cocoapods. Creo que esta es la verdadera forma de solucionar el problema.

Finalmente, trato de editar el esquema de mi proyecto:

El esquema de pods no está editado

y agrego el esquema de Pods en administrar:

ingrese la descripción de la imagen aquí

y construya este Pods.framework por separado, y encontrará que el ícono Pods.framework vuelve a ser verdaderamente:

ingrese la descripción de la imagen aquí

y creo que ahora ha solucionado su problema "marco no encontrado Pods_xxxx.framework" pero en realidad tengo otro problema por venir:

ingrese la descripción de la imagen aquí

así que ir a la configuración de compilación y edición del "Framework Search Path"con "${inherited}", y ahora todos los problemas se apaga, alegría !!!! :)

ingrese la descripción de la imagen aquí


Agregar el objetivo Pod y construirlo realmente mostró lo que estaba mal con la construcción del pod. En nuestro caso, este fue un conflicto de versión rápida. ¡Gracias!
green0range

No seguí todos los pasos. Acabo de agregar ese ${inherited}camino, luego lo hice Product->Clean Build Folder, y eso es todo, ahora se construye sin problemas.
Starwave

2

Después de eliminar y actualizar el pod, todavía tenía el mismo problema.

Descubrí que el desarrollador anterior colocó el indicador en ' Configuración de compilación -> Otros indicadores de vinculador ' con el nombre del Marco (en mi caso, marco 'OGVKit') que causó el problema.

Después de eliminar esa bandera, el proyecto se construye correctamente.


Muchas gracias! ¡Siempre tienes que estar atento a las cosas que están en negrita en la configuración de compilación!
Marcio Granzotto

2

Experimenté este problema porque no configuré el platform correctamente.

Entonces, en mi aplicación macOS, tenía la plataforma configurada para:

platform :ios

en vez de

platform :osx

1

Resolví este problema seleccionando el proyecto que lo descargó CocoaPodsy lo compiló, puede hacer clic en Administrar esquemas para que pueda aparecer en la barra Ejecutar. Entonces puedes reconstruir tu proyecto. Espero que sea de ayuda.


1

En mi caso, había una referencia a la biblioteca que eliminé en

Objetivos> Configuración de compilación> Rutas de búsqueda de runpath

Eliminar la biblioteca de Podfile y actualizarlo obviamente no lo eliminó, así que tuve que hacerlo manualmente y ahora todo funciona.


1

Ninguna de las respuestas anteriores señaló el problema raíz en mi situación. Así que espero que esto pueda ser útil para alguien más.

En mi caso, terminé teniendo que editar mi podfile en la raíz de mi proyecto. Cuando creé mi podfile por primera vez, las bibliotecas estáticas rápidas no eran compatibles. Así que había estado usando use_frameworks!en mi podfile debajo de cada uno de mis objetivos como tal:

ANTES DE

...
target 'targetName' do
   use_frameworks!
   pod 'podName', '~> 0.2'
end

DESPUÉS

...
target 'targetName' do
   pod 'podName', '~> 0.2'
end

He quitado use_frameworks!de mi PODFILE que mantuvo la instalación de los marcos cada vez me encontré con POD instalar. Después de eliminar esta línea, asegúrese de ejecutarpod install nuevamente y eliminar cualquiera de las referencias .framework rojas de su carpeta Frameworks en Xcode. (Aunque el mío apareció de manera diferente como se adjunta a continuación).

Imagen de Eliminar archivos .framework que ya no son necesarios

También puede leer más sobre use_framework! aquí .


0

Si abrió el archivo .xcworkspace y aún tiene el mismo error:

delete all the contents of Pods directory and from command line write "pod install" to resolve the issue.

0

Elimine la carpeta de marcos creada después de la instalación o actualización de pod


0

Otra cosa que resolvió mi problema es ir a Destino -> Configuración de compilación -> Otros indicadores del vinculador y eliminar el "marco" y el "nombre" de su marco.

Sucedió cuando intenté eliminar una cápsula.


0

Resolví esto arrastrando el .frameworkarchivo al marco vinculado y a las bibliotecas

Digamos que estaba teniendo este problema debido a un error FIRAnalyticsConnector not foundy simplemente arrastre el FIRAnalyticsConnector.framworkarchivo a Linked Framework and Libraries y mi problema se resolvió


0

Intenté todas las respuestas aquí y ninguna funcionó. Terminé haciéndolo funcionar aumentando el objetivo de implementación de 10.0 a 11.0. No tengo idea de por qué eso lo solucionó, pero sospecho que tiene que ver con la actualización a Xcode 10.2.1.


0

tal vez de repente abres el archivo incorrecto de .xcodprj y deberías abrir .xcworkspace


Es mejor publicar esto como un comentario.
Masoud Rahimi

0

Por favor revise su archivo ejecutable dentro. ingrese la descripción de la imagen aquí

  1. El nombre del archivo ejecutable debería ser así sin ninguna extensión.

  2. Algunos marcos que se muestran así ingrese la descripción de la imagen aquí

  3. Usando Terminal goto .framework, use el siguiente comando lipo -create FrameworkName-x86_64 FrameworkName-armv7 FrameworkName-armv7s FrameworkName-i386 FrameworkName-arm64 -output FrameworkName

después de crear un solo archivo ejecutable, elimine estos archivos ingrese la descripción de la imagen aquí

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.