web-dev-qa-db-fra.com

Xcode - ld: bibliothèque non trouvée pour -lPods

Je reçois ces erreurs lorsque je tente 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 simplement extrait de git pour le vérifier.

164
mrks

Si le projet utilise CocoaPods, n'oubliez pas de toujours ouvrir le fichier .xcworkspace au lieu du fichier .xcodeproj.

510
H6.

Eu ce problème aussi. Quelque chose n'allait pas avec mon installation de CocoaPods. Aucun autre module que KIF ne s’installait correctement. J'ai suivi les commentaires sur ce fil pour vous aider.

En gros, je devais m'assurer que les paramètres Build Active Architectures Only de mon projet et du projet Pods étaient identiques.

88
Stunner

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

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

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

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

De nombreux autres articles m'y ont jeté un coup d'œil et je verrais des changements dans l'erreur lorsque je m'amuserais avec les entrées, mais je continuais à avoir des variations sur la même erreur. 

Trop d'heures perdues ...

Mon correctif:

supprimez les lignes -lPods- (someCocoaPod) dans la liste 'Autres drapeaux de l'éditeur de liens'MAISuniquement si $ (hérité) est en haut. Au début, j'étais incertain, mais le signe rassurant était que je voyais toujours des références à mes cocotiers lorsque je quittais le mode d'édition (hérité). J'ai testé en mode debug et release, ce qui me donnait des erreurs et le problème a été résolu immédiatement.

48
damote

Il semble que le projet utilise cocoapods . et que des fichiers sont manquants dans votre projet.

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

pour plus d’aide, vous pouvez suivre Tutoriel d’Introduction à CocoaPods

Si le projet utilise CocoaPods, n'oubliez pas de toujours ouvrir le fichier .xcworkspace au lieu du fichier .xcodeproj

32
Rahul Patel

Si vous avez plusieurs cibles dans votre projet, il se peut que Cocoapod ne se soit bien intégré qu’à un seul.

Je devais établir un lien manuel avec libPods.a dans "Lien binaire avec des bibliothèques" pour chaque cible supplémentaire que j'avais.

libPods.a in my list of frameworks

26
Rizwan Sattar

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

Build Active Architecture Only: YES
21
Durul Dalkanat

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

Au lieu de cela, j’ai exécuté pod install avec une commande pod en dehors de la section target. Donc par exemple:

#WRONG
pod 'SOMEPOD'

target "My Target" do
    pod 'OTHERPODS'
end

Je l'ai rapidement corrigé et j'ai renvoyé le module errant dans la section target à laquelle il appartenait et j'ai à nouveau lancé pod install:

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

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

La solution a donc été d'aller dans les paramètres Paramètres généraux de ma cible, d'aller à Frameworks and Libraries liés et de supprimer simplement -libPods.a de la liste.

10
gravy

Si quelqu'un est venu ici pour résoudre une erreur avec react-native-fbsdk après l'avoir installé à l'aide de Cocoapods, n'oubliez pas que vous devez supprimer tous les autres fichiers .a de vos phases Projets build et ne conserver que le .a de cocoapods appelé libPods-WhateverAppName.a

 Only that remains here

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

Après avoir supprimé le fichier .a de base de Facebook de mes phases de construction, mon projet était de nouveau opérationnel.

8
SudoPlz

Mes pas: 

  1. Supprimez le dossier Pods et le fichier 'Pods'. 
  2. Tapez "pod install" dans Terminal. 
  3. Tapez "pod update" dans Terminal. 

En plus de vous assurer que "Construire des architectures actives" était réglé sur OUI, comme indiqué dans les réponses précédentes, c’est ce qui m’avait été utile. 

7
David Liu

Avait le même problème après la mise à niveau de Deployment target de 7.0 vers 8.0 et l'activation de use_frameworks!

cocoapods n'a pas supprimé les fichiers PodName.a générés précédemment de la section Frameworks de mon projet.

Je devais donc les supprimer manuellement, car ils causaient le linker error

6
Tim

Supprimez tous les fichiers/dossiers correspondants de la source de cocoapodes importés sauf podfile.

install cocoapod encore. Ceci devrait effacer toute extraction redondante de la source originale.

4
thatzprem

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 toutes les procédures de débogage, d'intégration et de publication sous "Macros de préprocesseur".
  2. Ajoutez ce qui suit dans "Autres drapeaux 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 de définir "Cible du projet -> Paramètres de construction -> Construire uniquement les architectures actives", définissez "Débogage" sur "OUI" et définissez "Intégration et édition" sur "Non". Répétez ensuite le même réglage de "Construire uniquement les architectures actives" 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).

Ensuite, essayez M. Mike répondre dans ce lien

Xcode 5.1 - Aucune architecture à compiler (ONLY_ACTIVE_Arch = YES, Arch actif = x86_64, VALID_ARCHS = i386)

J'espère que ça aide!

2
Sakthimuthiah

Lorsque vous clonez un projet utilisant des cocoapodes, 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 ne fonctionne pas;
  • 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 vérifier, utilisez la commande: " cat Podfile ", le contenu de ce fichier sera affiché avec les bibliothèques à installer dans votre projet;
  • 6) utilisez ensuite 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 {Votre nom de projet} .xcworkspace pour l’ouvrir en xcode;

Bonne chance!

2
Renat Gatin

Dans un projet avec plusieurs cibles, le même problème se posait après avoir modifié 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 précédente bibliothèque .a et la précédente étaient répertoriées, alors que la précédente n'existait plus. Supprimer la bibliothèque à partir de là a résolu le problème.

2
Shardon

J'ai eu le même problème

installation de pod et mise à jour de pod en ligne de commande résoudre mon problème

1
tamtoum1987

C'était mon problème en essayant d'intégrer Firebase à mon projet Xcode en utilisant 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 sur divers correctifs répertoriés dans le stackoverflow, mon problème a finalement été résolu en procédant comme suit

  1. Allez à Build Settings, recherchez Other Linker Flags, supprimez toutes les valeurs attendez $(inherited)Image

Faites ceci pour toutes les cibles.

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

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

1
Hariks

Ce problème lié aux lPod 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 fichier ".a" de la bibliothèque à l'origine du problème.
  • Nettoyer et construire.

Cela fonctionnera.

1
Abuzar Amin

Pour moi c'est travaillé. J'ai changé le nom de mon application d'une application à une autre application. Et j'utilise des dosettes de cacao pour l'intégration de plusieurs services tiers. Donc, à cause de ces 2 fichiers libPod ajoutés (Comme j'ai changé le nom et la cible de l'application). Enfin, j'ai dû supprimer un libPod. Et ça a fonctionné.

cible-> phases de construction-> lien binaire avec des bibliothèques 

1

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

1.Ajouter $ (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.

1
Saikiran K

Ma façon

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

  2. Copiez le texte dans "Autres drapeaux de l'éditeur de liens" dans le nouveau projet vers l'ancien projet. Faire vieux projet au même nouveau projet.

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

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 quand j'ai travaillé sur cet espace de travail.

Le correctif : Plus tard, j'ai constaté 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.

1
Vasanth

Si le projet utilise CocoaPods, n'oubliez pas de toujours ouvrir le fichier .xcworkspace au lieu du fichier .xcodeproj. si vous utilisez .xcworkspace, réinstallez le fichier de pod en retirant les pods, insérez-les à nouveau et installez-les !!! cela a fonctionné pour moi 

0
Chintu the cool kid