ld: framework non trouvé Pods


234

J'essaie d'ajouter un cadre à mon projet IOS mais quand je crée, j'ai toujours le même message:

ld: framework non trouvé Pods

clang: erreur: la commande de l'éditeur de liens a échoué avec le code de sortie 1 (utilisez -v pour voir l'invocation)

J'ai essayé de supprimer mon Podsrépertoire, puis d'exécuter, pod install j'ouvre .xcworkspacecomme il est écrit dans les journaux de l'installation du pod, je nettoie le projet sur xcode, puis j'essaie de le construire, mais cela ne fonctionnera pas ..

Mon podfile ressemble à ceci:

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'

Ma version de xcode est 6.3.1

Merci,


1
Avez-vous vérifié qu'il se libpods.atrouve dans vos «cadres et bibliothèques liés» de votre cible? Et dans vos phases de construction aussi?
BoilingLime

Avez-vous réussi à résoudre ce problème? J'ai la même erreur
Christopher Francisco

@ChristopherFrancisco Je l'ai résolu, vérifiez ma réponse.
Arbitur

1
Cette réponse [1] a résolu mon problème! J'espère que cela aide [1]: stackoverflow.com/a/31161871/1557663
Mário Carvalho

@ MárioCarvalho C'est juste une version plus longue et plus adaptée aux débutants de ma réponse x)
Arbitur

Réponses:


524

Dans Project Navigatorle dossier Podsj'avais un Pods.frameworkdedans qui était rouge. Il était également présent en Linked Frameworks and Libraries. J'ai supprimé les deux références et l'erreur a disparu.

TL; DR

Supprimer Pods.frameworkdans:

  • Dossier nommé Pods
  • Linked Frameworks and Libraries

5
Je pense que je me suis retrouvé avec ce problème après avoir ajouté use_frameworks! à mon Podfile et ensuite le commenter. La suppression de la référence à Pods.framework a résolu le problème.
StephenT

2
@StephenT Oui, je crois que c'est ce que j'ai fait aussi, utilisez d'abord use_frameworks!puis sans et peut-être que le Pods.frameworkn'a pas été supprimé correctement pendant pod install. Cela pourrait être un bug dans les Cocoapods.
Arbitur

Ceci est une bonne réponse, n'affecte pas l'exemple d'application, il fonctionne toujours bien
Gabriel Goncalves

3
Si cela ne fonctionne pas, essayez d'utiliser des cocoapodes-désintégrer. Cela vient de résoudre ce problème pour moi.
nickdnk

2
Après avoir exécuté l'installation de pod, je me suis retrouvé en quelque sorte avec un fichier de framework "Pods_ <Nom du projet>". Dans mon dossier Pods. La suppression de ce fichier, le nettoyage et la reconstruction ont supprimé cette erreur pour moi.
Caleb Faruki

209

Cela est généralement dû à l'ouverture du fichier .xcodeproj au lieu de .xcworkspace.

Lorsque vous exécutez «pod install» pour la première fois, il créera un fichier .xcworkspace, qui comprend votre .xcodeproj d'origine et un projet Pods. Vous devrez fermer votre .xcodeproj et ouvrir le .xcworkspace à la place.

C'est un problème courant lors de la création d'un projet via le nouvel assistant de projet de Xcode - j'oublie souvent que je ne suis pas dans un espace de travail, ce qui est nécessaire pour que les Cocoapods se connectent correctement.


Merci ! Cela me déroute pour la première fois
Phi Nguyen

6
Votre explication est bien meilleure que ce que j'ai vu ailleurs. Je ne savais pas ce qui se passait. Merci!
Michael Yaworski

Lorsque cela est fait en combinaison avec la réponse d'Arbitur, cela résout le problème. Merci!
user1577390

C'était exactement mon problème. Merci!
Antonio Papalillo

il n'y a pas de fichier .xcworkspace dans mon projet. que faire
Kartiikeya

126

Xcode 9, 10, 11, 11,5

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

pod deintegrate

puis

pod install

1
A fonctionné comme un charme! Je vous remercie. Cela s'est débarrassé d'une ancienne référence à une cible renommée à l'origine de cette erreur.
Alex Obenauer

1
Tu es mon héros! ;)
Swissdude

1
Wow Tu m'as sauvé la journée! a été bloqué hier et a finalement été résolu avec Xcode 10. Merci!
Purushottam Padhya

1
Ce devrait être la bonne réponse, c'est l'approche la plus sûre. Ne faites pas d'étapes manuelles lorsque vous utilisez des trucs automatisés comme CocoaPods, sauf s'il s'agit d'un bogue connu qui ne peut pas être corrigé autrement.
Gobe

1
celui-ci m'aide, mec incroyable!
Sruit A.Suk

51

J'ai effacé cette erreur en supprimant les .frameworkfichiers rouges qui se trouvaient dans un dossier Frameworksdu project navigator. Je pense que cela a également supprimé automatiquement les entrées rouges correspondantes dans la Linked Frameworks and Librariessection des Generalparamètres.

J'ai nettoyé / réinstallé des modules afin de résoudre un autre problème. Peut-être que ces fichiers et entrées de cadre rouge étaient juste des restes d'une installation de pod précédente?


Oui! Mon problème était dans les cadres et bibliothèques liés des paramètres généraux et était difficile à trouver car il n'apparaît pas dans une recherche de texte!
Alistair Cooper

Dans mon cas, les fichiers de framework n'étaient même pas rouges, mais juste grisés. Mais les supprimer semble avoir résolu le problème!
Swindler

29

Pour qui trouve ce problème. J'utilise NativeScript et j'ai eu la même erreur.

Cela arrive car j'ai ouvert le fichier .xcodeproj, mais nous devons ouvrir le projet par le fichier .xcworkspace.


27

Cela m'est arrivé après avoir mis à jour mon Podfile et fait une mise à jour du pod.

Pour une raison quelconque, j'avais un fichier de structure "Pods_ [ProjectName]". Apparaît sous mon projet sous "Cibles"> Général> Frameworks et bibliothèques liés.

La suppression, puis le nettoyage / la reconstruction ont résolu le problème.


2
Cela se produit lorsque vous changez de nom de projet et que vous devez effacer l'ancien. +1
Babbz77

Cela a fonctionné pour moi. Je n'ai pas changé de nom de projet, mais j'ai ajouté Swift à un projet Objective-C de longue durée.
Luffy

24

J'ai eu un problème similaire à celui

framework not found Pods_OneSignalNotificationServiceExtension

Il a été résolu en supprimant les éléments suivants. Accédez à la cible OneSignalNotificationServiceExtension> Phases de construction> Lier le binaire aux bibliothèques et supprimer Pods_OneSignalNotificationServiceExtension.framework Il devrait être vide ici. J'espère que cela vous aidera. À votre santé.


Cela a résolu le problème pour moi. Ma situation particulière est que j'avais une cible iOS MyApp. Ensuite, je devais créer une deuxième cible et j'avais des cibles MyAppFirst, MyAppSecond. Cocoapods a pu créer ce dont il avait besoin (Pods_MyAppFirst, Pods_MyAppSecond) mais il essayait également de se connecter à Pods_MyApp qui n'existait plus. Je tiens à souligner que dans le processus de correction, j'ai jeté mon fichier d'espace de travail et mon dossier Pods pour les recréer à partir de zéro lorsque j'ai effectué une «installation de pod», mais cela n'a pas aidé.
xdeleon

@Sharukh Mastan Auriez-vous une idée de comment y arriver après une installation de pod? Chaque fois que j'installe un pod, le Pods_OneSignalNotificationServiceExtension.framework revient me hanter dans les frameworks et bibliothèques liés de la OneSignalNotificationServiceExtensioncible.
Sethmr

@Sethmr Malheureusement, non. Dans mon cas, cependant, cela ne se produit pas toujours après un pod install, c'est aléatoire.
Sharukh Mastan

@SharukhMastan Ma question s'ouvrait la *.xcodeproj/*.xcworkspacesur *.xcworkspaceavec le script d'automatisation de mes VSTS. Je connais mieux avec un gui, mais je m'habitue toujours aux exigences du scripting land.
Sethmr

15

J'obtenais cette erreur parce que j'ai renommé mon projet et changer le nom du projet dans le fichier pod aussi, mais mon projet faisait référence à l'ancien nom qui n'était pas là et provoquait cette erreur. Je m'en débarrasse en

pod deintegrate

suivi par

pod install

Oui! J'ai eu le même problème lors de la rétrogradation de la version 12.0 à 9.0. Ce qui précède a fonctionné après avoir modifié la version cible dans mon Podfile pour correspondre à ce qui était dans le projet.
Richard Bown

Bonne réponse. Je vous remercie.
whdals0

14

vous devez supprimer votre projet d'un fichier comme cette image.

vous devez supprimer les pods.framework et les pods marquent les fichiers rouges


10

Supprimez simplement votre .framework de la liste de "Votre projet-> Général-> Framework lié et bibliothèques".


Ca y était, j'en ai eu deux après avoir renommé le projet. Merci!
Jimmy

10

Il est arrivé à moi parce que je l' ai changé l' Deployment Targeten Generalmais il a oublié de changer l' Deployment Targeten Pods > General. Modifier la cible de déploiement


Corrigé pour moi aussi, Xcode 11.2 / Cocoapods 1.8.4. Irritant que le message d'erreur ne ressemble en rien à la cause première ...
Jonathan Ellis

1
Corrigé pour moi - je ne savais pas que je devais changer cela aux deux endroits. Merci beaucoup!
hakazvaka

6

Dans mon cas, je peux le construire sur des appareils et un simulateur mais a les mêmes erreurs lors de l'archivage. Pour le résoudre, je dois

  • retirer Pods.framework
  • assurez-vous qu'il Pods-<project-name>.frameworkest intégré

Vous trouverez les paramètres dans TARGETS -> Frameworks et bibliothèques liés.



4

Étape 1

La première chose que vous devrez faire est de supprimer le Podfile, Podfile.lock, le dossier Pods et l'espace de travail généré.

Étape 2

Ensuite, dans le .xcodeproj, supprimez les références aux fichiers Pods.xcconfig et au fichier libPods.a.

Étape 3

Dans l'onglet de projet Build Phases, supprimez la section Check Pods Manifest.lock (ouverte), la section Copy Pods Resources (en bas) et Embed Pod Resources (en bas).

Étape 4

Supprimez Pods.framework.

La seule chose que vous voudrez peut-être faire est d'inclure certaines des bibliothèques que vous utilisiez auparavant. Vous pouvez le faire en faisant simplement glisser les dossiers dans les dossiers pods dans votre projet (je préfère les mettre dans mon dossier Supporting Files).

Ça a marché pour moi.


L'étape 3 a fonctionné dans mon cas, l'étape 3 -> cmd + alt + shift + k.
ViruMax

4

Vous essayez probablement de faire en sorte que les modules fonctionnent dans votre projet, n'est-ce pas? La seule façon de le faire est de créer un projet distinct qui utilise CocoaPods.

Fermez tous les espaces de travail que vous utilisez.

Ensuite, assurez-vous que votre Podfile est prêt à l'emploi.

Dans la ligne de commande, où que se trouve votre fichier, tapez la commande:

pod deintegrate

Ensuite, installez votre pod agian.

pod install or pod update

Vous pouvez maintenant utiliser le nouvel espace de travail de votre projet pour développer à partir de. Recherchez un fichier appelé .workspace. Utilisez ce fichier!

Voici un guide sur l'utilisation de CocoaPods


Seul celui-ci a fonctionné pour moi après une lutte de 2 jours avec l'erreur.
Mitesh Dobareeya

3

En utilisant Xcode 8.3, la réponse acceptée n'a pas fonctionné pour moi. J'avais essayé de nombreuses autres solutions mais la réponse @Elliott Davies est ce qui l'a corrigé pour moi. J'ajoute une capture d'écran pour plus de clarté. Pour une raison quelconque, Xcode essayait de lier les configurations de podfile précédentes qui n'existaient plus. Tout ce que j'avais à faire était de supprimer les références supplémentaires et tout fonctionnait.Capture d'écran des cadres et bibliothèques liés à Xcode


3

Ce problème me rendait fou car il s'est soudainement produit sans apporter de modifications au projet. J'ai essayé toutes les solutions suggérées dans ce fil (et d'autres connexes) et aucune d'entre elles n'a résolu le problème.

La seule chose qui différait de mes autres projets (qui compilaient bien), était que ce nom de projet contenait un accent (un accent français, "é"). J'ai renommé le projet et tous les fichiers associés, et cela a finalement fonctionné!

Peut-être que cela est lié à la mise à jour vers Xcode 10, car ce projet fonctionnait bien avant ...

EDIT: il semble également avoir échoué lors de l'utilisation d'un projet avec -en nom de projet…


1
Vous m'avez sauvé la vie
Florian Mac Langlade

1
J'ai aussi sauvé ma vie!
Dan

Une solution en plus de renommer le projet?
anestis

@anestis je ne pense pas. Pour renommer rapidement le projet, je suggère des commandes de cette réponse stackoverflow.com/a/48004237/4894980 qui font un très bon travail!
AnthoPak

3

Dans mon cas, après avoir comparé la différence entre une branche que je connaissais correctement, j'ai remarqué cette ligne dans mon Podfile:

platform :ios, '11.0'

J'avais par inadvertance augmenté ma version cible de 10 à 11 alors que mes cibles dans Xcode restaient définies à 10. Revenir à 10 a résolu mon problème pour moi.

Assurez-vous que vos versions iOS cibles sont correctement définies.


Tu m'as sauvé la journée !! Merci
Mayank Patel

3

C'est ainsi que je règle mon problème. et ça marche maintenant quand j'écris cette réponse:

Tout d'abord, j'essaie tout le chemin le plus correct ci-dessus,

supprimer Pods_xxx.framework des bibliothèques de liens et du framework dans les phases de construction de la cible est utile, et le problème disparaîtra, mais le problème à venir est que je ne peux plus importer le Pods.framework.

Et puis, j'essaie de réactiver la configuration xcworkspace, afin que je puisse comprendre le vrai problème. alors je cours

pod deintergate

puis réinstallez mon pod:

pod install

cela fonctionne parfaitement, mais le problème est toujours là, mais je comprends que le vrai problème est que Pods_xxx.framworks ne doit pas être compilé avec succès par le script de construction de cocoapods. Je pense que c'est la vraie façon de résoudre le problème.

Enfin, j'essaie de modifier le schéma de mon projet:

Le schéma des pods n'est pas modifié

et j'ajoute un système de pods dans la gestion:

entrez la description de l'image ici

et créez ce Pods.framework séparément, et vous constaterez que l'icône Pods.framework redevient vraiment:

entrez la description de l'image ici

et je pense que vous avez maintenant résolu votre problème "framework non trouvé Pods_xxxx.framework" mais en fait j'ai un autre problème à venir:

entrez la description de l'image ici

donc je vais dans le paramètre de construction, et édite le "Framework Search Path"avec "${inherited}", et maintenant tous les problèmes disparaissent, bravo !!!! :)

entrez la description de l'image ici


L'ajout d'une cible de pod et sa construction ont en fait montré ce qui n'allait pas avec la construction du pod. Dans notre cas, c'était un conflit de version rapide. Merci!
green0range

Je n'ai pas suivi toutes les étapes. J'ai juste ajouté ce ${inherited}chemin, puis je l'ai fait Product->Clean Build Folder, et c'est tout, maintenant il se construit sans accroc.
Starwave

2

Après avoir supprimé et mis à jour le pod, j'avais toujours le même problème.

J'ai trouvé que le développeur précédent avait placé l'indicateur dans ' Paramètres de construction -> Autres indicateurs de l' éditeur de liens ' avec le nom du Framework (dans mon cas -framework 'OGVKit') qui a causé le problème.

Après avoir supprimé cet indicateur, le projet se construit correctement.


Merci beaucoup! Vous devez toujours garder un œil sur les éléments audacieux dans les paramètres de construction!
Marcio Granzotto

2

J'ai rencontré ce problème car je n'ai pas réglé platformcorrectement.

Donc, dans mon application macOS, la plate-forme était configurée pour:

platform :ios

au lieu de

platform :osx

1

J'ai résolu ce problème en sélectionnant le projet qui l'a téléchargé CocoaPodset construit, vous pouvez cliquer sur Gérer les schémas pour qu'il apparaisse dans la barre d'exécution. Ensuite, vous pouvez reconstruire votre projet. J'espère que cela vous aidera.


1

Dans mon cas, il y avait une référence à la bibliothèque que j'ai supprimée

Cibles> Paramètres de construction> Chemins de recherche de chemin d'exécution

La suppression de la bibliothèque de Podfile et sa mise à jour ne l'ont évidemment pas supprimée, j'ai donc dû le faire manuellement et maintenant tout fonctionne.


1

Aucune des réponses précédentes n'a souligné le problème fondamental de ma situation. J'espère donc que cela peut être utile à quelqu'un d'autre.

Dans mon cas, j'ai fini par devoir éditer mon podfile à la racine de mon projet. Lorsque j'ai créé mon podfile pour la première fois, les bibliothèques statiques rapides n'étaient pas prises en charge. J'avais donc utilisé use_frameworks!dans mon podfile sous chacune de mes cibles en tant que telle:

AVANT

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

APRÈS

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

J'ai supprimé use_frameworks!de mon podfile qui continuait d'installer les frameworks à chaque fois que j'exécutais l'installation de pod. Après avoir supprimé cette ligne, assurez-vous de réexécuter pod installet supprimez toutes les références .framework rouges de votre dossier Frameworks dans Xcode. (Bien que le mien apparaisse différemment comme ci-dessous.)

Image de la suppression des fichiers .framework qui ne sont plus nécessaires

Vous pouvez également en savoir plus use_framework! ici .


0

Si vous avez ouvert le fichier .xcworkspace et que vous obtenez toujours la même erreur:

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

0

Supprimer le dossier des frameworks créé après l'installation ou la mise à jour du pod


0

Une autre chose qui a résolu mon problème est d'aller sous Cible -> Paramètres de construction -> Autres indicateurs de l'éditeur de liens et de supprimer le "-framework" et votre framework "nom".

C'est arrivé quand j'ai essayé de retirer un pod.


0

J'ai résolu ce problème en faisant glisser le .frameworkfichier vers le cadre et les bibliothèques liés

Disons que je rencontrais ce problème en raison d'une erreur FIRAnalyticsConnector not foundet que je fais simplement glisser le FIRAnalyticsConnector.framworkfichier vers Linked Framework and Libraries et mon problème est résolu


0

J'ai essayé toutes les réponses ici et aucune n'a fonctionné. J'ai fini par le faire fonctionner en augmentant la cible de déploiement de 10,0 à 11,0. Je ne sais pas pourquoi cela a été corrigé, mais je soupçonne que cela a à voir avec la mise à niveau vers Xcode 10.2.1.


0

peut-être que vous ouvrez soudainement le mauvais fichier de .xcodprj et que vous devriez ouvrir .xcworkspace


Il est préférable de poster un tel commentaire.
Masoud Rahimi

0

Veuillez vérifier votre fichier exécutable à l'intérieur. entrez la description de l'image ici

  1. Le nom du fichier exécutable devrait ressembler à ceci sans aucune extension.

  2. Certains cadres montrant comme ça entrez la description de l'image ici

  3. À l'aide du répertoire goto .framework du terminal, utilisez la commande ci-dessous lipo -create FrameworkName-x86_64 FrameworkName-armv7 FrameworkName-armv7s FrameworkName-i386 FrameworkName-arm64 -output FrameworkName

après avoir créé un seul fichier exécutable, supprimez ces fichiers entrez la description de l'image ici

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.