Xcode - ld: libreria non trovata per -lPods


185

Ottengo questi errori quando provo a creare un'applicazione 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 nelle impostazioni di costruzione:

${SRCROOT}/Pods

Non ho creato questo progetto Xcode - l'ho appena estratto da Git per verificarlo.

Risposte:


601

Se il progetto utilizza CocoaPods, tieni presente di aprire sempre il .xcworkspacefile anziché il .xcodeprojfile.


2
Ho anche trovato utile costruire il target pod, non il normale target Xcode.
Don Simon,

1
Dopo averlo aperto, non riesco affatto a eseguire il mio progetto. cosa dovrei fare?
Inuyasha,

Ho notato che un riferimento Podsè nel .xcodeprojma non nel .xcworkspace, quindi perché questa soluzione funziona.
Jacksonkr,

1
Cd nella cartella del progetto ed esegui "aggiornamento pod". Se non hai un pod, cerca come installarlo.
justinkoh,

2
Ho ricevuto quel messaggio di errore quando ho aperto .xcworkspace (per essere più precisi, ha funzionato una volta su un Mac e non sull'altro). Nel mio caso, ho riscontrato il problema relativo alla ridenominazione di un progetto e successivamente alla sua copia su un altro computer , le librerie non sono state copiate nella nuova posizione. confrontare: /Users/[USERNAME]/Library/Developer/Xcode/DerivedData/[OLDPROJECTNAME]-[LONGRNDCHARS]/Build/Productscon:/Users/[USERNAME]/Library/Developer/Xcode/DerivedData/[NEWPROJECTNAME]-[LONGRNDCHARS]/Build/Products
Yatko

97

Anche questo problema. Qualcosa non andava nella mia installazione di CocoaPods. Nessun pod diverso da KIF si installava correttamente. Ho seguito i commenti su questo thread per essere di aiuto.

Fondamentalmente, dovevo garantire che le Build Active Architectures Onlyimpostazioni sia per il mio progetto che per il progetto Pods fossero uguali.


7
Ho dovuto assicurarmi che fosse uguale tra gli obiettivi del mio progetto e gli obiettivi del pod ...
Nimrod Shai,

Questo succede a me una volta ogni 6 mesi e non ricordo mai come l'ho risolto l'ultima volta ... Crea solo architettura attiva. . . Ricordiamo tutti
Kanongata il

51

Dopo ore di ricerca questa soluzione ha funzionato per me:

(dichiarazione di non responsabilità: i risultati possono variare a causa di circostanze)

l' Library not found -lPods-(someCocoapod)errore era dovuto a più voci in:

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

Un sacco di altri post mi hanno fatto guardare lì e avrei visto le modifiche all'errore quando ho sbagliato con le voci, ma ho continuato a ottenere alcune variazioni sullo stesso errore.

Troppe ore perse ...

La mia correzione:

rimuovi le righe -lPods- (someCocoaPod) nell'elenco 'Altre bandiere linker' MA solo se $ (ereditato) è in alto. All'inizio non ero sicuro, ma il segno rassicurante era che vedevo ancora riferimenti ai miei cocoapodi quando lasciai la modalità di modifica (ereditata). Ho testato il debug e il rilascio, entrambi i quali mi davano errori e il problema è stato immediatamente risolto.


ha funzionato come un fascino, grazie. Ho avuto questo problema solo durante l'aggiornamento a Swift 2.0 su El Capitan. Ha funzionato perfettamente prima.
Ovi,

Ho solo $ (ereditato) e allo stesso tempo ho questi duplicati frustranti. Dove posso modificare il valore originale nella variabile $ (ereditata)?
Nickolay,

Mi hai salvato il giorno amico ... bloccato in questo problema per un po '... è successo perché ho rimosso l'intero progetto pod e l'ho aggiunto di nuovo
Mihir Mehta

Risolto anche per me. Non lo avrei mai capito da solo!
bmueller,

Hai battuto! Funziona come un fascino
Rob Sanders,

31

Sembra che il progetto stia usando i cocoapodi . e che i file mancano dal tuo progetto.

Non puoi semplicemente scaricarlo da Git. È necessario installarlo da cocoapods.

per ulteriore aiuto, puoi seguire Introduzione al Tutorial CocoaPods

Se il progetto utilizza CocoaPodstenere presente che è sempre necessario aprire il .xcworkspacefile anziché il .xcodeprojfile


1
@RahulPatel Come installare il file specifico, puoi condividere il comando
Ashok Londhe,

Se si desidera utilizzare la nuova versione beta è possibile utilizzare:pod 'GoogleAds-IMA-iOS-SDK-For-AdMob', '3.0.beta.16'
Berendschot

27

Se hai più target nel tuo progetto, Cocoapods potrebbe essersi integrato bene solo con uno solo di essi.

Ho dovuto collegarmi manualmente libPods.ain "Collega binario con librerie" per ogni obiettivo aggiuntivo che avevo.

libPods.a nel mio elenco di framework


penso che l'installazione del pod non sia un file libPods.a integrato su tutti i target, come ho aggiunto Rizwan e funziona ... Grazie Rizwan Sattar
Wagh,

Questo ha funzionato per me anche se non è stato mostrato in rosso. Dopo ho eseguito l'installazione del pod e non l'ho aggiunto, tutto sembra funzionare comunque.
Jules

2
In realtà, ciò che dovevo fare è rimuovere una libreria obsoleta (nome-mio-progetto) .a perché ho rinominato il progetto prima ed è rimasto bloccato lì. Ho valutato la tua risposta perché mi ha dato un'idea di dove potrebbe essere il problema.
Kalafun,

Sei un salvavita!
Yuliwee,

24

Il mio problema era stato risolto dalla seguente configurazione:

Build Active Architecture Only: YES

Questo ha funzionato per me quando ho riscontrato un problema con SDWebImage .... per coloro che hanno trovato la strada qui per quel componente Cocoapod
Scott D,

Questo risolve questo problema per me, ma ne causa un altro. Devo costruire per tutte le architetture, non solo quella attiva.
HotFudge domenica

In un vecchio codice sto integrando i pod. Sto affrontando lo stesso problema. La risposta sopra è stata di aiuto.
Shashank Kulshrestha,

15

Se qualcuno è venuto qui per risolvere un errore react-native-fbsdkdopo averlo installato usando Cocoapods, tieni presente che devi rimuovere tutti gli altri file .a nelle fasi di compilazione dei tuoi progetti e mantenere solo il .a dai cocoapodi chiamati libPods-WhateverAppName.a.

Solo questo rimane qui

Questo di solito è causato dall'esecuzione rnpm linke dal modo in cui funziona rnpm.

Dopo aver rimosso il file .a core di Facebook dalle mie fasi di compilazione, il mio progetto era di nuovo attivo e funzionante.


11

Questo problema relativo a lPods può essere risolto seguendo i passaggi seguenti

  • Seleziona il tuo obiettivo di progetto.
  • Vai a "Build Phases"in "Link Binary With Libraries".
  • Ora rimuovi il ".a"file di quella libreria che sta creando il problema.
  • Pulisci e costruisci.

Questo funzionerà.


Nel mio caso la rimozione ha libstdc++.6.dylibrisolto il problema!
Igor de Lorenzi,

Come e dove hai rimosso "libstdc ++. 6.dylib", in quanto ho bisogno di rimuovere "-lstdc ++. 6". Sto ottenendo la "libreria non trovata per -lstdc ++. 6"
Hari Narayanan il

10

Nessuna delle risposte sopra ha risolto il problema per me.

Quello che avevo fatto invece era stato eseguito pod installcon un podcomando al di fuori della targetsezione. Quindi per esempio:

#WRONG
pod 'SOMEPOD'

target "My Target" do
    pod 'OTHERPODS'
end

L'ho risolto rapidamente e restituito il pod errante nella targetsezione a cui apparteneva e ho eseguito pod installnuovamente:

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

Ma quello che è successo nel frattempo è stato che la lib è -libPods.astata aggiunta alle mie librerie collegate, che non esiste più e non dovrebbe esserci dato che è già -libPods-My Target.apresente.

Quindi la soluzione era quella di andare nelle impostazioni generali del mio target e andare su Frame e librerie collegate e semplicemente eliminare -libPods.adall'elenco.


Ho installato cocoapods correttamente per il mio progetto, ma ho riscontrato lo stesso errore dell'OP. L'eliminazione di -libPods.a ha risolto il problema per me. Grazie gentilmente, signore.
NKorotkov,

Stavo aggiornando un vecchio progetto, ho eliminato il vecchio Podfile e sono corso pod inita crearne uno nuovo, e ho scoperto che il vecchio file era come piace a te # WRONG, e il nuovo file è come # CORRECT. Grazie!
BJ Miller,

8

I miei passi:

  1. Elimina la cartella pods e il file "Pods".
  2. Digita "pod install" nel Terminale.
  3. Digita "aggiornamento pod" nel Terminale.

Oltre a assicurarmi che "Build Active Architectures" fosse impostato su SÌ come indicato nelle risposte precedenti, questo è ciò che l'aveva fatto per me.


+1 Nel mio caso, se è -lHelpshifto il nome specifico del pod. Quindi rimuovo solo la cartella specifica così è Pods/Helpshift. Quindi fare di pod installnuovo. Non è necessario aggiornare. Ora funziona.
haxpor,

1
L'eliminazione di tutti i pod e la reinstallazione sono state di aiuto.
Sanad Liaquat,

7

Aveva una stesso problema dopo l'aggiornamento Deployment targetda 7.0a 8.0e consentendouse_frameworks!

cocoapodsnon ha eliminato i PodName.afile precedentemente generati dalla Frameworkssezione del mio progetto.

Quindi ho dovuto eliminare quelli manualmente, perché hanno causato il linker error


4

Elimina tutti i file / cartelle corrispondenti dell'origine dei cocoapodi importati tranne il podfile.

install cocoapod di nuovo. Questo dovrebbe eliminare qualsiasi pull ridondante dalla fonte originale.


3

Quando cloni un progetto da qualche parte che utilizza Cocoapods, devi installarlo nel tuo progetto.

Ecco passo-passo cosa devi fare:

  • 1) clonare il codice sorgente sulla macchina locale;
  • 2) chiudere il progetto xcode (se aperto);
  • 3) installa l'applicazione cocoapods sul tuo Mac eseguendo questo comando nel terminale: " gem install cocoapods ", aggiungi " sudo " all'inizio se non funzionava;
  • 4) vai alla radice del tuo progetto xcode usando il comando " cd " nel terminale;
  • 5) dovresti avere Podfile in questa cartella; se si desidera ricontrollarlo utilizzare: comando " cat Podfile ", visualizzerà il contenuto di questo file con Librerie che dovranno essere installate nel progetto;
  • 6) quindi usa il comando " pod install " per scaricare e installare le Librerie sul tuo progetto; il Podfile.lock verrà creato e il file {Your project name} .xcworkspace ;
  • 7) da ora in poi devi usare {Your project name} .xcworkspace per aprirlo in xcode;

In bocca al lupo!


3

Questo era il mio problema mentre cercavo di integrare Firebase nel mio progetto Xcode usando cocoapods

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

Dopo ore di ricerche e prove di varie correzioni elencate nello stackoverflow, il mio problema è stato finalmente risolto eseguendo i seguenti passaggi

  1. Vai a Build Settings, cerca Other Linker Flags, rimuovi tutti i valori previsti$(inherited) Immagine

Fallo per tutti gli obiettivi.

  1. Elimina la cartella dei pod. ( ios/Pods)
  2. Fare pod update

Ecco! Tutti gli errori del linker spariranno.


Questo doveva accadere anche per me. Tuttavia, anche nel mio caso è stata aggiunta un'app Reazione nativa a Firebase Analytics. A partire da luglio 2018, tutte le app devono essere costruite con iOS 11 per Apple: developer.apple.com/ios/submit/ Una volta che sono andato alla mia scheda Generale e ho scorrere verso il basso fino a Informazioni di distribuzione / Destinazione di distribuzione e ho cambiato da 10.x che è quello che stavo prendendo di mira, a 11.x - l'app creata / archiviata e che ho potuto inviare.
bo_

2

Per me, il seguito aveva funzionato.

  1. Vai su "Target di progetto -> Impostazioni build -> Preelaborazione -> Macro preprocessore". Impostare "COCOAPODS = 1" in tutti i Debug, Integrazione, Rilascio in "Macro preprocessore"
  2. Aggiungi quanto segue in "Altre bandiere linker" in "Target di progetto"
    1. $ ereditato
    2. -ObjC
    3. -lc ++
    4. -all_load

Pulisci ed esegui il progetto. Se l'errore persegue lo stesso, provare a impostare "Target progetto -> Crea impostazioni -> Crea solo architetture attive", impostare "Debug" su "SÌ" e impostare "Integrazione e rilascio" su "No". Quindi ripeti la stessa impostazione di "Costruisci solo architetture attive" per tutti i "target di pod"

Pulisci ed esegui il progetto. Se ricevi il seguente errore

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

Quindi prova la risposta del signor Mike in questo link

Xcode 5.1 - Nessuna architettura da compilare per (ONLY_ACTIVE_ARCH = YES, arco attivo = x86_64, VALID_ARCHS = i386)

Spero che sia d'aiuto!


2

In un progetto con più target ho avuto lo stesso problema dopo aver modificato il nome dello schema e dell'app e ho provato ad aggiornare i pod. Il problema è stato causato a causa di più voci in Build Phases -> Link Binary with Libraries in cui erano elencate sia la precedente libreria .a che quella corrente, mentre la precedente non esisteva più. La rimozione della libreria da lì ha risolto il problema.


1

A modo mio

  1. crea un nuovo progetto e installa il pod che potrà essere eseguito senza errori.

  2. Copia il testo in "Altre bandiere linker" nel nuovo progetto nel vecchio progetto. Trasforma il vecchio progetto nello stesso nuovo progetto.

  3. Controlla anche "Percorsi di ricerca dell'intestazione".


1

Per me questo ha funzionato. Ho cambiato il nome della mia app da someApp ad otherApp. E sto usando cialde di cacao per l'integrazione di più servizi di terze parti. Quindi a causa di quei 2 file libPod aggiunti (come ho cambiato il nome e la destinazione dell'app). Alla fine ho dovuto rimuovere un libPod. E ha funzionato.

target-> Fasi di costruzione-> Collega binario con librerie


1

Ho avuto lo stesso errore.

Il problema : ho creato un'area di lavoro separata e vi ho aggiunto il mio progetto esistente. Ho ricevuto l'errore quando ho lavorato su quell'area di lavoro.

La correzione : Successivamente ho scoperto che Workspace viene creato automaticamente all'interno del progetto esistente quando vengono aggiunte dipendenze. E devo lavorare su quell'area di lavoro.


Questa risposta non indica chiaramente come risolvere la domanda che è stata posta
Marco

1

La seguente soluzione ha funzionato per me per la versione 2.3 della trama principale. Apporta le modifiche di seguito nella sezione flag di altri linker.

1.Aggiungi $ (ereditato) e trascina questo elemento nella posizione superiore 2.Rimuovi il prefisso "Pods-" da -l "Pods-fmemopen", l "Pods-NSAttributedStringMarkdownParser" e -l "Pods-MagicalRecord".

se il problema persiste, vedere infine se PODS_ROOT è impostato o meno. Puoi verificarlo nella sezione definita dall'utente.


1

Ho avuto lo stesso problema

installazione pod e aggiornamento pod sulla riga di comando risolvono il mio problema


1

Se il progetto utilizza CocoaPods, tenere sempre presente il file .xcworkspace anziché il file .xcodeproj. se stai utilizzando .xcworkspace, reinstalla il file pod rimuovendo i pod, quindi inseriscilo di nuovo e installalo !!! questo ha funzionato per me

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.