ld: framework non trovato Pods


234

Sto cercando di aggiungere un framework al mio progetto IOS ma quando costruisco ho sempre ricevuto lo stesso messaggio:

ld: framework non trovato Pods

clang: errore: comando linker non riuscito con il codice di uscita 1 (usare -v per vedere l'invocazione)

Ho provato a rimuovere la mia Podsdirectory e quindi eseguo pod install apro .xcworkspacecome è scritto nei registri sull'installazione del pod, pulisco il progetto su xcode e quindi provo a compilare ma non funzionerà ..

Il mio podfile è simile al seguente:

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'

La mia versione di xcode è 6.3.1

Grazie,


1
Hai verificato che libpods.asia presente nei tuoi "Frame e librerie collegati" del tuo target? E anche nelle fasi di costruzione?
BoilingLime

Sei riuscito a risolvere questo? Sto riscontrando lo stesso errore
Christopher Francisco,

@ChristopherFrancisco L'ho risolto, controlla la mia risposta.
Arbitur

1
This How to Answer [1] ha risolto il mio problema! Spero che aiuti [1]: stackoverflow.com/a/31161871/1557663
Mário Carvalho,

@ MárioCarvalho Questa è solo una versione più lunga e più adatta ai principianti della mia risposta x)
Arbitur

Risposte:


524

Nella Project Navigatorcartella Podsavevo un Pods.frameworkdentro che era rosso. Era anche presente in Linked Frameworks and Libraries. Ho rimosso entrambi i riferimenti e l'errore è scomparso.

TL; DR

Rimuovi Pods.frameworkin:

  • Cartella denominata Pods
  • Linked Frameworks and Libraries

5
Penso di aver finito con questo problema dopo aver aggiunto use_frameworks! al mio Podfile e successivamente commentandolo. L'eliminazione del riferimento a Pods.framework ha risolto il problema.
StephenT,

2
@StephenT Sì, credo sia quello che ho fatto anche io, prima usando use_frameworks!e poi senza e forse Pods.frameworknon è stato cancellato correttamente durante pod install. Potrebbe essere un bug in Cocoapods.
Arbitur,

Questa è una buona risposta, non influisce sull'app di esempio, funziona ancora bene
Gabriel Goncalves,

3
Se non funziona, prova a utilizzare cocoapods-deintegrate. Questo ha risolto questo problema per me.
nickdnk,

2
Dopo aver eseguito l'installazione del pod, in qualche modo ho finito con un file "Pods_ <Nome progetto>" nella mia cartella Pods. L'eliminazione di questo file, la pulizia e la ricostruzione hanno rimosso questo errore per me.
Caleb Faruki,

209

Questo di solito è causato dall'apertura del file .xcodeproj anziché da .xcworkspace.

Quando avvii 'pod install' per la prima volta, verrà creato un file .xcworkspace, che include il tuo originale .xcodeproj e un progetto Pods. Dovrai chiudere .xcodeproj e aprire invece .xcworkspace.

Questo è un problema comune durante la creazione di un progetto tramite la nuova procedura guidata di Xcode: dimentico spesso che non mi trovo in uno spazio di lavoro, necessario per far sì che Cocoapods si colleghi correttamente.


Grazie ! Mi confonde per la prima volta
Phi Nguyen il

6
La tua spiegazione è molto migliore di quella che ho visto altrove. Non avevo realizzato cosa stesse succedendo. Grazie!
Michael Yaworski il

Se fatto in combinazione con la risposta di Arbitur, questo risolve il problema. Grazie!
user1577390,

Questo era esattamente il mio problema. Grazie!
Antonio Papalillo,

non c'è alcun file .xcworkspace nel mio progetto. cosa fare
Kartiikeya il

126

Xcode 9, 10, 11, 11.5

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

pod deintegrate

poi

pod install

1
Ha funzionato come un fascino! Grazie. Questo ha eliminato un vecchio riferimento a un target rinominato che stava causando questo errore.
Alex Obenauer,

1
Tu sei il mio eroe! ;)
Swissdude,

1
Wow, mi hai salvato la giornata! è stato bloccato da ieri e finalmente risolto con Xcode 10. Grazie!
Purushottam Padhya,

1
Questa dovrebbe essere la risposta corretta, è l'approccio più sicuro. Non eseguire passaggi manuali quando si utilizzano elementi automatici come CocoaPods, a meno che non si tratti di un bug noto che non può essere risolto altrimenti.
Gobe,

1
questo mi aiuta, amico incredibile!
Assumi A.Suk il

51

Ho eliminato questo errore eliminando i .frameworkfile rossi che si trovavano in una cartella Frameworksin project navigator. Penso che anche questo abbia automaticamente cancellato le corrispondenti voci rosse nella Linked Frameworks and Librariessezione delle Generalimpostazioni.

Ho pulito / reinstallato i pod per risolvere un altro problema. Forse questi file e voci del framework rosso erano rimasti solo da una precedente installazione del pod?


Sì! Il mio problema era nelle cornici collegate e nelle librerie delle impostazioni generali ed era difficile da trovare in quanto non emerge in una ricerca di testo!
Alistair Cooper,

Nel mio caso i file del framework non erano nemmeno rossi, ma erano solo in grigio. Ma eliminarli sembra aver risolto il problema!
Swindler,

29

Per chi trova questo problema. Sto usando NativeScript e ho avuto lo stesso errore.

Ciò accade perché ho aperto il file .xcodeproj, ma dobbiamo aprire il progetto con il file .xcworkspace.


27

Questo mi è successo dopo aver aggiornato il mio Podfile e aver fatto un aggiornamento del pod.

Per qualche motivo, ho avuto un "Pods_ [ProjectName]". Il file framework appare sotto il mio progetto in "Target"> Generale> Frame e librerie collegati.

L'eliminazione di questo e quindi la pulizia / ricostruzione hanno risolto il problema.


2
Ciò accade quando si cambiano i nomi dei progetti e occorre cancellare quello vecchio. +1
Babbz77,

Questo ha funzionato per me. Non ho cambiato i nomi dei progetti, ma ho aggiunto Swift a un progetto Objective-C di lunga durata.
Luffy,

24

Ho avuto un problema simile a

framework not found Pods_OneSignalNotificationServiceExtension

È stato risolto rimuovendo quanto segue. Vai al target OneSignalNotificationServiceExtension> Crea fasi> Collega binario con librerie ed elimina Pods_OneSignalNotificationServiceExtension.framework Dovrebbe essere vuoto qui. Spero che questo ti aiuti. Saluti.


Ciò ha risolto il problema per me. La mia situazione particolare è che avevo un MyApp di destinazione iOS. Quindi avevo bisogno di creare un secondo target e avevo MyAppFirst, MyAppSecond target. Cocoapods è stato in grado di creare ciò di cui aveva bisogno (Pods_MyAppFirst, Pods_MyAppSecond) ma stava anche cercando di collegarsi a Pods_MyApp che non esisteva più. Voglio sottolineare che nel tentativo di risolvere ho buttato via il mio file dell'area di lavoro e la cartella Pods per farli ricreare da zero quando ho eseguito un "pod -install" ma questo non ha aiutato.
xdeleon,

@Sharukh Mastan Hai idea di come farlo dopo un'installazione pod? Ogni volta che installo pod, Pods_OneSignalNotificationServiceExtension.framework torna a perseguitarmi nei framework e nelle librerie collegati del OneSignalNotificationServiceExtensiontarget.
Sethmr

@Sethmr Purtroppo, no. Nel mio caso, tuttavia, non succede sempre dopo un pod install, è casuale.
Sharukh Mastan

@SharukhMastan Il mio problema era l'apertura di *.xcodeproj/*.xcworkspace over the *.xcworkspacecon il mio script di automazione vsts .yml. Conosco meglio la gui, ma mi sto ancora abituando ai requisiti della sceneggiatura.
Sethmr

15

Stavo ottenendo questo errore perché ho rinominato il mio progetto e ho cambiato anche il nome del progetto nel file pod, ma il mio progetto si riferiva al vecchio nome che non c'era e causava questo errore. Me ne sbarazzo

pod deintegrate

seguito da

pod install

Sì! Ho avuto lo stesso problema durante il downgrade della versione dalla 12.0 alla 9.0. Quanto sopra ha funzionato dopo che avevo modificato la versione di destinazione nel mio Podfile in modo che corrispondesse a ciò che era nel progetto.
Richard Bown,

Buona risposta. Grazie.
whdals0

14

dovresti eliminare alcuni file dal tuo progetto come in questa immagine.

dovresti eliminare pods.framework e i pod contrassegnano i file rossi


10

Rimuovi il tuo .framework dall'elenco di "Il tuo progetto-> Generale-> Framework e librerie collegate".


Ecco, ne avevo due dopo aver ribattezzato il progetto. Grazie!
Jimmy,

10

Mi è successo perché ho cambiato Deployment Targetin Generalma ho dimenticato di cambiare Deployment Targetin Pods > General. Modifica la destinazione di distribuzione


Risolto anche per me, Xcode 11.2 / Cocoapods 1.8.4. Irritante che il messaggio di errore non assomigli alla causa principale ...
Jonathan Ellis

1
Risolto il problema per me, non avevo idea che avrei dovuto cambiarlo in entrambi i posti. Grazie mille!
Hakazvaka,

6

Nel mio caso posso costruirlo su dispositivi e simulatore ma presenta gli stessi errori durante l'archiviazione. Per risolverlo, devo

  • rimuovere Pods.framework
  • assicurarsi che Pods-<project-name>.frameworksia incorporato

Troverai le impostazioni in OBIETTIVI -> Strutture e librerie collegate.



4

Passo 1

La prima cosa che dovrai fare è rimuovere Podfile, Podfile.lock, la cartella Pods e l'area di lavoro generata.

Passo 2

Quindi, in .xcodeproj, rimuovi i riferimenti ai file Pods.xcconfig e al file libPods.a.

Passaggio 3

Nella scheda progetto Fasi build, elimina la sezione Check Pods Manifest.lock (apri), la sezione Copia pod pod (in basso) e Incorpora risorse pod (in basso).

step4

Rimuovi Pods.framework.

L'unica cosa che potresti voler fare è includere alcune delle librerie che stavi utilizzando in precedenza. Puoi farlo semplicemente trascinando le cartelle in cui si trovano le cartelle dei pod nel tuo progetto (preferisco metterle nella mia cartella dei file di supporto).

Ha funzionato per me.


Il passaggio 3 ha funzionato nel mio caso, passaggio 3 -> cmd + alt + maiusc + k.
ViruMax,

4

Probabilmente stai cercando di far funzionare i pod nel tuo progetto, giusto? L'unico modo per farlo è creare un progetto separato che utilizza CocoaPods.

Chiudi tutti gli spazi di lavoro che stai utilizzando.

Quindi, assicurati di avere il tuo Podfile completamente pronto per partire.

Nella riga di comando, ovunque sia il tuo file, digita il comando:

pod deintegrate

Quindi, installa il tuo pod agian.

pod install or pod update

Ora puoi utilizzare il nuovo spazio di lavoro del tuo progetto per svilupparlo. Cerca un file chiamato .workspace. Usa quel file!

Ecco una guida sull'utilizzo di CocoaPods


Solo questo ha funzionato per me dopo una lotta di 2 giorni con l'errore.
Mitesh Dobareeya,

3

Usando Xcode 8.3 la risposta accettata non ha funzionato per me. Avevo provato molte altre soluzioni ma la risposta di @Elliott Davies è ciò che mi ha risolto. Sto aggiungendo uno screenshot per chiarezza. Per qualche motivo, Xcode stava provando a collegare le precedenti configurazioni del file pod che non esistevano più. Tutto quello che dovevo fare era cancellare i riferimenti extra e tutto funzionava.Schermata di Xcode Linked Frameworks and Libraries


3

Questo problema mi stava facendo impazzire perché all'improvviso è successo senza apportare modifiche al progetto. Ho provato tutte le soluzioni suggerite in questo thread (e altri correlati) e nessuno di loro ha risolto il problema.

L'unica cosa che differiva dai miei altri progetti (compilati bene), era che il nome di questo progetto conteneva un accento (un accento francese, "é"). Ho rinominato il progetto e tutti i file correlati e alla fine ha funzionato!

Forse questo è legato all'aggiornamento a Xcode 10, perché questo progetto stava funzionando molto prima ...

EDIT: sembra anche fallito quando si utilizza un progetto con il -nome del progetto ...


1
Mi hai salvato la vita
Florian Mac Langlade,

1
Mi hai anche salvato la vita!
Dan

Qualche soluzione oltre a rinominare il progetto?
anestis,

@anestis Non la penso così. Per rinominare rapidamente il progetto, suggerisco comandi da questa risposta stackoverflow.com/a/48004237/4894980 che fanno un ottimo lavoro!
AnthoPak,

3

Nel mio caso, dopo aver confrontato la differenza tra un ramo che sapevo costruito correttamente, ho notato questa linea nel mio Podfile:

platform :ios, '11.0'

Avevo inavvertitamente aumentato la mia versione di destinazione da 10 a 11 mentre i miei obiettivi in ​​Xcode sono rimasti impostati su 10. Il ripristino a 10 ha risolto il problema per me.

Assicurati che le versioni iOS di destinazione siano impostate correttamente.


Mi hai salvato la giornata !! Grazie
Mayank Patel

3

Questo è il modo in cui risolvo il mio problema. e ora funziona quando scrivo questa risposta:

In primo luogo, provo tutto il modo più corretto sopra,

rimuovere Pods_xxx.framework dalle librerie dei collegamenti e dal framework nelle fasi di compilazione del target è utile e il problema scompare, ma il problema che si presenta è che non riesco più a importare Pods.framework.

E poi, provo a ripristinare la configurazione di xcworkspace, in modo da poter capire il vero problema. quindi corro

pod deintergate

e quindi installare nuovamente il mio pod:

pod install

funziona perfettamente, ma il problema è ancora lì, ma capisco che il vero problema è che Pods_xxx.framworks non può essere compilato con successo dallo script di creazione di cocoapods. Penso che questo sia il vero modo per risolvere il problema.

Infine, provo a modificare lo schema del mio progetto:

Lo schema dei pod non è stato modificato

e aggiungo lo schema Pods per gestire:

inserisci qui la descrizione dell'immagine

e costruisci questo Pods.framework separatamente, e troverai l'icona Pods.framework diventare veramente di nuovo:

inserisci qui la descrizione dell'immagine

e penso che ora hai risolto il problema "framework not found Pods_xxxx.framework" ma in realtà ho un altro problema in arrivo:

inserisci qui la descrizione dell'immagine

quindi vado alle impostazioni di build e modifico il "Framework Search Path"con "${inherited}", e ora tutti i problemi si risolvono, esultare !!!! :)

inserisci qui la descrizione dell'immagine


L'aggiunta del target Pod e la sua costruzione hanno effettivamente mostrato cosa non andava nella creazione del pod. Nel nostro caso si è trattato di un rapido conflitto di versione. Grazie!
green0range,

Non ho seguito tutti i passaggi. Ho appena aggiunto quel ${inherited}percorso, poi l'ho fatto Product->Clean Build Foldere basta, ora si costruisce senza intoppi.
Starwave,

2

Dopo aver rimosso e aggiornato il pod, avevo ancora lo stesso problema.

Ho scoperto che lo sviluppatore precedente ha messo la bandiera in ' Impostazioni di costruzione -> Altre bandiere linker " con il nome del Framework (nel mio caso "OGVKit") che ha causato il problema.

Dopo aver eliminato quella bandiera, il progetto viene compilato correttamente.


Grazie mille! Devi sempre tenere d'occhio le cose che sono audaci in Impostazioni di costruzione!
Marcio Granzotto,

2

Ho riscontrato questo problema perché non ho impostato il platform correttamente.

Quindi nella mia app macOS avevo la piattaforma impostata su:

platform :ios

invece di

platform :osx

1

Ho risolto questo problema selezionando il progetto da cui è stato scaricato CocoaPodse creato, è possibile fare clic su Gestisci schemi in modo che possa essere visualizzato nella barra di esecuzione. Quindi puoi ricostruire il tuo progetto. Spero che sia d'aiuto.


1

Nel mio caso, c'era un riferimento alla libreria che ho rimosso

Target> Impostazioni di costruzione> Percorsi di ricerca del percorso

Rimuovere la libreria da Podfile e aggiornarlo ovviamente non lo ha rimosso, quindi ho dovuto farlo manualmente e ora tutto funziona.


1

Nessuna delle risposte precedenti ha sottolineato il problema alla radice nella mia situazione. Quindi spero che questo possa essere utile a qualcun altro.

Nel mio caso, ho dovuto modificare il mio podfile alla radice del mio progetto. Quando ho creato il mio podfile per la prima volta, le veloci librerie statiche non erano supportate. Quindi avevo usato use_frameworks!nel mio podfile sotto ciascuno dei miei obiettivi come tale:

PRIMA

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

DOPO

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

Ho rimosso use_frameworks!dal mio podfile che continuava a installare i framework ogni volta che eseguivo pod pod. Dopo aver rimosso questa riga, assicurati di eseguire pod installnuovamente e rimuovi tutti i riferimenti rossi .framework dalla cartella Frameworks in Xcode. (Anche se il mio è apparso in modo diverso come allegato di seguito.)

Immagine della rimozione dei file .framework che non sono più necessari

Puoi anche leggere di più use_framework! qui .


0

Se hai aperto il file .xcworkspace e hai ancora lo stesso errore:

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

0

Elimina la cartella dei framework creata dopo l'installazione o l'aggiornamento del pod


0

Un'altra cosa che ha risolto il mio problema è andare su Target -> Impostazioni di costruzione -> Altre bandiere del linker ed eliminare il "-framework" e il "nome" del framework.

È successo quando ho provato a rimuovere un pod.


0

Ho risolto il problema trascinando il .frameworkfile nel Framework e nelle librerie collegate

Supponiamo che stia riscontrando questo problema a causa di un errore FIRAnalyticsConnector not founde trascino il FIRAnalyticsConnector.framworkfile su Linked Framework e Librerie e il mio problema è stato risolto


0

Ho provato ogni risposta qui e nessuno di loro ha funzionato. Ho finito per farlo funzionare aumentando l'obiettivo di distribuzione da 10.0 a 11.0. Non ho idea del perché sia ​​stato risolto, ma sospetto che abbia a che fare con l'aggiornamento a Xcode 10.2.1.


0

forse improvvisamente apri il file sbagliato di .xcodprj e dovresti aprire .xcworkspace


È meglio pubblicare questo come un commento.
Masoud Rahimi,

0

Si prega di controllare il file eseguibile all'interno. Come inserisci qui la descrizione dell'immagine

  1. Il nome del file eseguibile dovrebbe essere simile a questo senza alcuna estensione.

  2. Alcuni framework mostrano così inserisci qui la descrizione dell'immagine

  3. Utilizzo di Terminal goto .framework directory usa sotto il comando lipo -create FrameworkName-x86_64 FrameworkName-armv7 FrameworkName-armv7s FrameworkName-i386 FrameworkName-arm64 -output FrameworkName

dopo aver creato un singolo file eseguibile, eliminare questi file inserisci qui la descrizione dell'immagine

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.