Xcode - ld: bibliothèque introuvable pour -lPods

185

J'obtiens ces erreurs lorsque j'essaye de créer une application 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 dans les paramètres de construction:

${SRCROOT}/Pods

Je n'ai pas créé ce projet Xcode - je l'ai juste extrait de git pour le vérifier.

mrks
la source

Réponses:

601

Si le projet utilise CocoaPods, soyez conscient de toujours ouvrir le .xcworkspacefichier au lieu du .xcodeprojfichier.

H6.
la source
2
J'ai également trouvé utile de créer la cible du pod, pas la cible Xcode normale.
Don Simon
1
Après l'avoir ouvert, je ne peux pas du tout exécuter mon projet. que devrais-je faire?
Inuyasha
J'ai remarqué qu'une référence à Podsest dans le .xcodeprojmais pas dans le .xcworkspace, d'où la raison pour laquelle cette solution fonctionne.
Jacksonkr
1
Cd dans le dossier du projet et exécutez "pod update". Si vous n'avez pas de pod, recherchez comment l'installer.
justinkoh
2
J'ai reçu ce message d'erreur lors de l'ouverture de .xcworkspace (pour être plus précis, cela a fonctionné une fois sur un mac et non sur l'autre). Dans mon cas, j'ai trouvé le problème lié au changement de nom d'un projet et à sa copie ultérieure sur un autre ordinateur , les bibliothèques n'ont pas été copiées vers le nouvel emplacement. comparer: /Users/[USERNAME]/Library/Developer/Xcode/DerivedData/[OLDPROJECTNAME]-[LONGRNDCHARS]/Build/Productsà:/Users/[USERNAME]/Library/Developer/Xcode/DerivedData/[NEWPROJECTNAME]-[LONGRNDCHARS]/Build/Products
Yatko
97

Eu ce problème aussi. Quelque chose n'allait pas avec mon installation CocoaPods. Aucun pod autre que KIF ne s'installait correctement. J'ai suivi les commentaires sur ce fil pour être utile.

Fondamentalement, je devais m'assurer que les Build Active Architectures Onlyparamètres de mon projet et du projet Pods étaient égaux.

Stunner
la source
7
Je devais m'assurer qu'il était également égal entre les cibles de mon projet et les cibles du pod ...
Nimrod Shai
Cela m'arrive une fois tous les 6 mois, et je ne me souviens jamais comment je l'ai résolu la dernière fois ... Construire une architecture active uniquement. . .
Puissions-
51

Après des heures de recherche, cette solution a fonctionné pour moi:

(avertissement: les résultats peuvent varier en fonction des circonstances)

l' Library not found -lPods-(someCocoapod)erreur était due à plusieurs entrées dans:

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

Beaucoup d'autres messages m'ont fait regarder là-bas et je voyais des changements dans l'erreur lorsque je dérangeais les entrées, mais j'ai continué à obtenir des variations sur la même erreur.

Trop d'heures perdues ...

Ma solution:

supprimez les lignes -lPods- (someCocoaPod) dans la liste 'Other Linker Flags' MAIS seulement si $ (inherited) est en haut. Au début, j'étais incertain, mais le signe rassurant était que je voyais encore des références à mes cocoapodes lorsque j'ai quitté le mode d'édition (hérité). J'ai testé en débogage et en version, qui me donnaient tous deux des erreurs, et le problème a été immédiatement résolu.

damote
la source
a fonctionné comme un charme, merci. Je n'ai eu ce problème que lors de la mise à jour vers Swift 2.0 sur El Capitan. A parfaitement fonctionné avant.
Ovi du
Je n'ai que $ (hérité) et en même temps j'ai ces dupes frustrantes. Où puis-je modifier la valeur d'origine en variable $ (héritée)?
nickolay du
Vous avez sauvé mon homme de la journée ... coincé dans ce problème pendant un certain temps ... cela s'est produit parce que j'ai supprimé tout le projet de pod et l'ai
réajouté
Corrigé pour moi aussi. Je n'aurais jamais compris cela par moi-même!
bmueller
Vous battez! Fonctionne comme un charme
Rob Sanders
31

Il semble que le projet utilise des cocoapodes . et que des fichiers sont absents de votre projet.

Vous ne pouvez pas simplement le télécharger depuis git. Vous devez l'installer à partir de cocoapodes.

pour plus d'aide, vous pouvez suivre le didacticiel Introduction à CocoaPods

Si le projet utilise, CocoaPodssoyez conscient de toujours ouvrir le .xcworkspacefichier au lieu du .xcodeprojfichier

Rahul Patel
la source
1
@RahulPatel Comment installer le fichier particulier pouvez-vous s'il vous plaît partager la commande
Ashok Londhe
Si vous souhaitez utiliser la nouvelle version bêta, vous pouvez utiliser:pod 'GoogleAds-IMA-iOS-SDK-For-AdMob', '3.0.beta.16'
Berendschot
27

Si vous avez plusieurs cibles dans votre projet, les Cocoapods ne se sont peut-être bien intégrés qu'à l'un d'entre eux.

Je devais lier manuellement libPods.adans "Link Binary With Libraries" pour chaque cible supplémentaire que j'avais.

libPods.a dans ma liste de frameworks

Rizwan Sattar
la source
Je pense que l'installation du pod n'est pas un fichier libPods.a intégré à toutes les cibles, comme Rizwan isntruction, j'ai ajouté et cela fonctionne ... Merci Rizwan Sattar
Wagh
Cela a fonctionné pour moi même si cela n'a pas été montré en rouge. J'ai exécuté l'installation du pod par la suite et cela ne l'a pas ajouté, tout semble fonctionner cependant.
Jules
2
En fait, je devais supprimer une bibliothèque obsolète (my-project-name) .a parce que j'ai renommé le projet auparavant et qu'il était juste coincé là-bas. J'ai mis à jour votre réponse, car elle m'a donné une idée de l'origine du problème.
kalafun
Tu es un sauveur!
Yuliwee le
24

Mon problème avait été résolu par la configuration suivante:

Build Active Architecture Only: YES
Durul Dalkanat
la source
Cela a fonctionné pour moi lorsque j'ai rencontré un problème avec SDWebImage .... pour ceux qui ont trouvé leur chemin ici pour ce composant Cocoapod
Scott D
Cela résout ce problème pour moi, mais en provoque un autre. J'ai besoin de construire pour toutes les architectures, pas seulement pour celle active.
HotFudge Dimanche
Dans un ancien code, j'intègre des pods. Je suis confronté au même problème. La réponse ci-dessus a aidé.
Shashank Kulshrestha
15

Si quelqu'un est venu ici pour résoudre une erreur react-native-fbsdkaprès l'avoir installé en utilisant Cocoapods, gardez à l'esprit que vous devez supprimer tous les autres fichiers .a dans les phases de construction de vos projets et ne conserver que le .a des cocoapods appelés libPods-WhateverAppName.a.

Seulement cela reste ici

Cela est généralement dû à l'exécution rnpm linket au fonctionnement de rnpm.

Après avoir supprimé le fichier .a du noyau facebook de mes phases de construction, mon projet était à nouveau opérationnel.

SudoPlz
la source
11

Ce problème lié aux lPods peut être résolu en suivant les étapes ci-dessous

  • Sélectionnez votre cible de projet.
  • Allez "Build Phases"dans "Link Binary With Libraries".
  • Supprimez maintenant le ".a"fichier de cette bibliothèque qui crée le problème.
  • Nettoyez et construisez.

Cela fonctionnera.

Abuzar Amin
la source
Dans mon cas, la suppression a libstdc++.6.dylibrésolu le problème!
Igor de Lorenzi le
Comment et où vous avez supprimé le "libstdc ++. 6.dylib", car je dois supprimer le "-lstdc ++. 6". J'obtiens la "bibliothèque introuvable pour -lstdc ++. 6"
Hari Narayanan
10

Aucune des réponses ci-dessus ne l'a résolu pour moi.

Ce que j'avais fait à la place était exécuté pod installavec une podcommande en dehors de la targetsection. Donc par exemple:

#WRONG
pod 'SOMEPOD'

target "My Target" do
    pod 'OTHERPODS'
end

Je l'ai rapidement réparé et renvoyé le pod errant dans la targetsection à laquelle il appartenait et j'ai pod installrecommencé:

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

Mais ce qui s'est passé entre-temps, c'est que la -libPods.abibliothèque a été ajoutée à mes bibliothèques liées, ce qui n'existe plus et ne devrait plus car il y a déjà le -libPods-My Target.adedans.

La solution était donc d'aller dans les paramètres généraux de ma cible et d'aller dans les cadres et bibliothèques liés et de simplement supprimer -libPods.ade la liste.

sauce
la source
J'ai installé correctement les cocoapodes pour mon projet, mais j'ai eu la même erreur que l'OP. La suppression de -libPods.a l'a résolu pour moi. Merci beaucoup, monsieur.
NKorotkov
J'étais en train pod initde mettre à jour un ancien projet, j'ai mis au rebut l'ancien Podfile et j'ai couru pour en créer un nouveau, et j'ai découvert que l'ancien fichier était comme votre # WRONGchemin, et le nouveau fichier est comme # CORRECT. Je vous remercie!
BJ Miller
8

Mes pas:

  1. Supprimez le dossier pods et le fichier «Pods».
  2. Tapez "pod install" dans le terminal.
  3. Tapez "pod update" dans le terminal.

En plus de s'assurer que "Build Active Architectures" était réglé sur OUI comme mentionné dans les réponses précédentes, c'était ce qui l'avait fait pour moi.

David Liu
la source
+1 Dans mon cas, s'il s'agit d' -lHelpshiftun nom spécifique du pod. Ensuite, je supprime uniquement le dossier spécifique ainsi il est Pods/Helpshift. Puis pod installrecommencez. Pas besoin de mettre à jour. Ça fonctionne maintenant.
haxpor
1
La suppression de tous les pods, puis la réinstallation ont aidé.
Sanad Liaquat
7

J'ai eu le même problème après la mise Deployment targetà niveau de 7.0vers 8.0et l'activationuse_frameworks!

cocoapodsn'a pas supprimé les PodName.afichiers précédemment générés duFrameworks section de mon projet.

J'ai donc dû les supprimer manuellement, car elles provoquaient le linker error

Tim
la source
4

Supprimez tous les fichiers / dossiers correspondants de la source des cocoapodes importés à l'exception de podfile.

install cocoapod Cela devrait effacer toute extraction redondante de la source d'origine.

thatzprem
la source
3

Lorsque vous clonez un projet à partir d'un endroit qui utilise des Cocoapods, vous devez les installer dans votre projet.

Voici étape par étape ce que vous devez faire:

  • 1) cloner le code source sur la machine locale;
  • 2) fermez le projet xcode (s'il est ouvert);
  • 3) installez l'application cocoapods sur votre mac en exécutant cette commande dans le terminal: " gem install cocoapods ", ajoutez " sudo " au début si cela n'a pas fonctionné;
  • 4) allez à la racine de votre projet xcode en utilisant la commande " cd " dans le terminal;
  • 5) vous devriez avoir Podfile dans ce dossier; si vous voulez le vérifier, utilisez: la commande " cat Podfile ", il affichera le contenu de ce fichier avec les bibliothèques qui devront être installées dans votre projet;
  • 6) puis utilisez la commande " pod install " pour télécharger et installer les bibliothèques dans votre projet; le Podfile.lock sera créé et {Votre nom de projet} .xcworkspace fichier ;
  • 7) à partir de maintenant, vous devez utiliser {Nom de votre projet} .xcworkspace pour l'ouvrir dans xcode;

Bonne chance!

Renat Gatin
la source
3

C'était mon problème en essayant d'intégrer Firebase à mon projet Xcode à l'aide de cocoapods

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

Après des heures de recherche et d'essai de divers correctifs répertoriés dans le stackoverflow, mon problème a finalement été résolu en suivant les étapes suivantes

  1. Aller à Build Settings, rechercher Other Linker Flags, supprimer toutes les valeurs attendues$(inherited) Image

Faites cela pour toutes les cibles.

  1. Supprimez le dossier des pods. (ios/Pods )
  2. Faire pod update

Voila! Toutes les erreurs de l'éditeur de liens auront disparu.

Hariks
la source
Cela devait arriver pour moi aussi. Cependant, dans mon cas également, il s'agissait d'une application native de réaction ajoutée à Firebase Analytics. À partir de juillet 2018, toutes les applications doivent être créées avec iOS 11 par Apple: developer.apple.com/ios/submit/ Une fois que je suis allé dans mon onglet Général, j'ai fait défiler jusqu'à Informations de déploiement / Cible de déploiement et l'ai changé de 10.x, ce qui est ce que je visais, à 11.x - l'application construite / archivée et j'ai pu soumettre.
bo_
2

Pour moi, suivre avait fonctionné.

  1. Allez dans "Cible du projet -> Paramètres de construction -> Prétraitement -> Macros de préprocesseur". Définissez "COCOAPODS = 1" dans tous les débogages, intégration, version sous "Macros de préprocesseur"
  2. Ajoutez ce qui suit dans "Autres indicateurs de l'éditeur de liens" sous "Cible du projet"
    1. $ hérité
    2. -ObjC
    3. -lc ++
    4. -all_load

Nettoyez et exécutez le projet. Si l'erreur persiste, essayez en définissant "Cible du projet -> Paramètres de construction -> Construire des architectures actives uniquement", définissez "Déboguer" sur "OUI" et définissez "Intégration et libération" sur "Non". Ensuite, répétez le même paramètre de "Construire des architectures actives uniquement" pour toutes les "cibles de pods"

Nettoyez et exécutez le projet. Si vous recevez l'erreur suivante

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

Alors essayez la réponse de M. Mike dans ce lien

Xcode 5.1 - Aucune architecture à compiler pour (ONLY_ACTIVE_ARCH = YES, active arch = x86_64, VALID_ARCHS = i386)

J'espère que ça aide!

Sakthimuthiah
la source
2

Dans un projet avec plusieurs cibles, j'ai eu le même problème après avoir changé le nom du schéma et de l'application et essayé de mettre à jour les pods. Le problème était dû à plusieurs entrées dans Build Phases -> Link Binary with Libraries où la bibliothèque .a précédente et la bibliothèque actuelle étaient répertoriées, tandis que la précédente n'existait plus. La suppression de la bibliothèque a résolu le problème.

Shardon
la source
1

Mon chemin

  1. créer un nouveau projet et installer le pod, il peut s'exécuter sans erreur.

  2. Copiez le texte dans "Autres indicateurs de l'éditeur de liens" du nouveau projet vers l'ancien projet. Transformez l'ancien projet en même nouveau projet.

  3. Cochez également "Chemins de recherche d'en-tête".

Supapon Pick Pucknavin
la source
1

Pour moi, cela fonctionne. J'ai changé le nom de mon application de someApp à otherApp. Et j'utilise des cabosses de cacao pour l'intégration de plusieurs services tiers. Donc, à cause de ces 2 fichiers libPod ajoutés (car j'ai changé le nom et la cible de l'application). Enfin, j'ai dû supprimer un libPod. Et ça a marché.

target-> Build phases-> Link Binary With Libraries

Narasimha Nallamsetty
la source
1

J'ai eu la même erreur.

Le problème : j'ai créé un espace de travail séparé et y ai ajouté mon projet existant. J'ai eu l'erreur lorsque j'ai travaillé sur cet espace de travail.

Le correctif : plus tard, j'ai découvert que Workspace était créé automatiquement dans le projet existant lorsque des dépendances étaient ajoutées. Et je dois travailler sur cet espace de travail.

Vasanth
la source
Cette réponse n'indique pas clairement comment résoudre la question qui a été posée
Mark
1

La solution ci-dessous a fonctionné pour moi pour la version core-plot 2.3. Faites les modifications ci-dessous dans la section des autres indicateurs de l'éditeur de liens

1.Ajoutez $ (hérité) et faites glisser cet élément en première position. 2.Supprimez le préfixe "Pods-" de -l "Pods-fmemopen", l "Pods-NSAttributedStringMarkdownParser" et -l "Pods-MagicalRecord".

si le problème persiste, vérifiez enfin si PODS_ROOT est défini ou non. Vous pouvez le vérifier dans la section définie par l'utilisateur.

Saikiran K
la source
1

J'ai eu le même problème

l'installation du pod et la mise à jour du pod sur la ligne de commande résolvent mon problème

tamtoum1987
la source
1

Si le projet utilise CocoaPods, soyez conscient de toujours ouvrir le fichier .xcworkspace au lieu du fichier .xcodeproj. si vous utilisez .xcworkspace, veuillez réinstaller le fichier pod en supprimant les pods, puis insérez à nouveau les pods et installez-le !!! cela a fonctionné pour moi

Chintu le gamin cool
la source