Errori CocoaPods durante la creazione del progetto


178

Non riesco a costruire un progetto che utilizza CocoaPods. Ottengo i seguenti errori:

diff: /../Podfile.lock: No such file or directory
diff: Manifest.lock: No such file or directory error: 
The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.`

$ pod installsembra funzionare bene e aggiunge un Podsprogetto al mio spazio di lavoro. Ci ho provato $ pod updatema questo non aiuta.

Sembra che PODS_ROOTnon sia stato impostato.

Podfile:

platform :ios, '6.0'

workspace 'Example.xcworkspace'
xcodeproj 'example/Example.xcodeproj' 

pod 'TestFlightSDK', '~> 1.3.0-beta.5'
pod 'TestFlightLogger', '~> 0.0.2'
pod 'CocoaLumberjack', '~> 1.6.2'
pod 'Reachability', '~> 3.1.0'
pod 'SBJson', '~> 3.2'
pod 'MKMapViewZoom', '~> 1.0.0'

3
Un semplice "Pod install" risolvere questo problema :)
onmyway133

Importante! [!] From now on use MyProject.xcworkspace.non il vecchio `.xcodeproj '
Dawid Drozd,

Quando
esegui il

Risposte:


171

Ho avuto un problema simile quando ho apportato importanti modifiche al mio Podfile. La mia soluzione era quella di rimuovere il file dell'area di lavoro ed eseguire di pod installnuovo:

rm -rf MyProject.xcworkspace
pod install

17
Significa che i cocoapodi non sono installati correttamente. corsasudo gem install cocoapods
asgoth

4
gem install cocoapodsè ancora meglio. Il più delle volte sudonon dovrebbe essere necessario con le gemme.
PatrickNLT,

5
La tua risposta ha reso la mia giornata. Sono rimasto bloccato per ore. cappello spento
shaikh

Grazie per questo, ha risolto l'errore. FWIW, ho ricevuto l'errore dopo aver fatto ungem update cocoapods
rounak il

Problema risolto. Si è verificato un errore durante l'esecuzione di "aggiornamento pod"
swebal l'

68

TLDR: questo è probabilmente un bug con Xcode e chiudere e riaprire il progetto è di solito la soluzione più semplice. Supponendo che tutto il resto sia configurato correttamente .


Occasionalmente ricevo lo stesso errore quando elimino la Podsdirectory e poi eseguo pod install.

Tutto appare corretto nelle informazioni sul progetto:

inserisci qui la descrizione dell'immagine

Tuttavia, quando vado alle Impostazioni build definite dall'utente del target, la voce PODS_ROOT è completamente mancante o è vuota per una o più configurazioni. Il che causa il seguente errore durante la compilazione:

inserisci qui la descrizione dell'immagine

La soluzione più semplice è chiudere il progetto in Xcode e riaprirlo .

Se vai alle Impostazioni di costruzione del target e filtra su Tutto , ora vedrai la PODS_ROOTvoce senza errori:

inserisci qui la descrizione dell'immagine

Ora dovrebbe compilare senza errori.


Nota: anche l'esempio ufficiale AFNetworking iOS di Cocoa Pods presenta questo problema, il che mi porta a credere che si tratti di un bug con Xcode.

Una correzione alternativa consiste nel modificare manualmente la configurazione in None, quindi di nuovo al suo valore originale:

inserisci qui la descrizione dell'immagine


1
Questo si è rivelato essere per me! $ PODS_ROOT non è stato impostato correttamente
Alex Ryan,

Dopo una lunga ricerca di soluzioni, sono stato in grado di farlo funzionare senza errori grazie alla tua soluzione. Ho appena dovuto cambiare le configurazioni in None e tornare a Pods
Glogo,

È BUONO mettere NESSUN aiuto.

32

Vai al target Build Settingse assicurati che il valore di PODS_ROOTuguale sia ${SRCROOT}/Podsnella sezione "Definito dall'utente".

inserisci qui la descrizione dell'immagine


Funziona alla grande. Questo è ciò che era necessario.
pr4n

Ho dovuto aggiungere PODS_ROOTal mio obiettivo con questo percorso e violá (l'ho anche aggiunto header search pathscome ricorsivo
Jacksonkr il

Non ha funzionato per me.

30

aggiornare: a podfile.lockè necessario e non deve essere ignorato dal controllo versione, tiene traccia delle versioni delle librerie installate durante l'installazione di un determinato pod. (È simile a gemfile.lock e composer.lock per la gestione delle dipendenze di rails e php, rispettivamente). Per saperne di più leggi i documenti . Il merito va a cbowns .


Nel mio caso, quello che ho fatto è stato che stavo facendo un po 'di pulizia della casa per il mio progetto (ovvero ramificando i test di integrazione come un sottomodulo git .. rimuovendo i file duplicati ecc.) .. e trasferendo il risultato finale in un repository remoto git .. tutti i client che hanno clonato il mio repository hanno sofferto dell'errore sopra riportato. Ispirato dal commento di Hlung sopra, mi sono reso conto che c'erano alcuni script pod penzolanti che stavano tentando di correre contro alcuni file inesistenti. Quindi sono andato alla mia fase di costruzione del target, e ho eliminato tutte le fasi rimanenti che avevano qualcosa a che fare con i baccelli di cacao (e il commento di Hlung mi suggerisce di cancellare Copy Pods Manifest.locke copy pod resources... i miei sono stati nominati diversi forse b / c sto usando Xcode 5 .. il il punto è eliminare quelle fasi di costruzione sospese) ..


1
Non Podfile.lockè per questo: leggi la documentazione di Cocoapods su "Lavorare con i team" per ulteriori informazioni al riguardo.
Arriva l'

@cbown hai perfettamente ragione, grazie per il commento. Ho aggiornato la mia risposta.
circa l'

12
Ho eliminato il mio file xcworkspace e ho installato pod, ma ricevo ancora lo stesso messaggio di errore.
jowie,

@jowie stesso qui ... puoi per favore guidarmi se l'hai risolto.
Bandish Dave,

28

Quindi sembra che CocoaPods non abbia impostato le configurazioni per il mio progetto. Devono basarsi su ciò Pods.xcconfigche si trova nel file Pods/Target Support Files/Pods. Per farlo funzionare ho dovuto fare quanto segue:

  1. Trascina questo file nel mio progetto Xcode in Xcode, scegliendo di non copiarlo.
  2. Ora c'è un riferimento nel nostro progetto, possiamo impostare le configurazioni: inserisci qui la descrizione dell'immagine

Ho quindi avuto un altro errore di build che potrebbe essere o meno correlato. Il percorso dello script shell definito in Copy Pods Resourcesnon era corretto.

"${SRCROOT}/Pods/Pods-resources.sh"

Risolto in modo errato Sembrava che SRCROOT aggiungesse una directory extra che non esisteva nel percorso. Quindi ho hardcoded il percorso alla cartella Project.

Questo mi ha permesso di costruire.

Perché così tante cose che dovrebbero farti risparmiare tempo finiscono per mangiarlo?

Nota: vedere la risposta di @ abood per una spiegazione.


27
Se vedi questo errore perché hai rimosso tutti i pod da una destinazione, non avrai più script pod ma proverà comunque a eseguirlo. Dovrai andare alla fase di costruzione target, eliminare Copy Pods Manifest.locke Copy Pods Resourcesfasi. E rimuovi anche libPods.ain Link Binary with Libraries.
Hlung,

@Hlung eccellente commento .. in realtà affronta la causa principale del problema, ho provato le soluzioni sopra e ho ancora finito con un Podfile.lock (che la maggior parte dei .gitignorefile sono configurati per ignorare .. e giustamente) .. quel file non dovrebbe rimarrai in giro .. Se lo scrivessi come risposta, ti darei un +1!
circa

@abbood Scrivilo e ti darò la vittoria.
Distrazione

Volevo solo aggiungere che questo problema sulla pagina Github di CocoaPods menziona il controllo delle fasi di compilazione per probabilmente questo esatto problema (ancora più simile poiché ho più target). Il problema mi ha fatto scorrere qui ...
DanBlakemore il

22

Ho un problema simile, questo è ciò che ha funzionato:

  1. In Xcode:
    • Pulito
    • Elimina i dati derivati ​​in Xcode / Window / Organizer / Project / Your Project
    • Directory pod (contiene file di configurazione, elimina file non solo riferimenti!)
    • Rimossi tutti i riferimenti ai file di configurazione del pod per ogni destinazione in Progetto / Configurazioni (debug / versione)
    • Rimossi "Target / Crea fasi / Copia risorse pod" da tutti i target
    • Rimossi "Target / Impostazioni build / Definiti dall'utente / PODS_ROOT" da tutti i target
  2. Esci da Xcode
  3. Nella directory del progetto:
    • rm -rf Pods
    • (Facoltativo) rm -rf YourProject.xcworkspace
    • rm -rf Podfile.lock
  4. installazione pod
  5. Apri YourProject.xcworkspace in Xcode

4
Non rimuovere arbitrariamente lo spazio di lavoro, anche se lo spazio di lavoro è stato creato da Cocoapods, è gestito da te.
Joseph DeCarlo,

Questo ha funzionato per me ha eliminato tutti i file relativi a pod e pod reinstallati.
Leena,

15

Mi sono sbarazzato dello stesso problema procedendo come segue:

  • Xcode->Product->Clean Build Folder(tieni premuto il tasto Alt sul Prodotto per vederlo)
  • Apri Xcode->Window->Organizere seleziona la Projectsscheda. Quindi trova il tuo progetto ed elimina derived data il progetto.

1
Ha funzionato per me. Era infastidito. Ora felice.
fresidue,

Nel mio caso ho avuto problemi con un progetto github. Quindi ho dovuto rimuovere completamente la directory del progetto (rm -rf), fare quanto sopra, quindi decomprimere il progetto, installare il pod e aprire xcworkspace e senza errori!
Rharvey,

Ha funzionato per me. Grazie.
xevser,

10

Semplicemente risolto nel modo seguente:

  • (sudo) gem install cocoapods

  • installazione pod

  • pulito e costruito

sembra che il problema sia stato causato da uno dei membri del nostro team che ha installato una gemma di cocoapodi più recente.


1
Ho dovuto reinstallare cocoapods E riavviare XCode per risolvere questo problema.
The Camster,

Dovevo correre gem install cocoapodse poi pod installe quasi tutto il resto menzionato in questa discussione ...
Echelon,

9

  1. aprire il file .xcodeproj nel testo sublime
  2. rimuovi queste due righe, se hai cartelle pod pulite, intendo se hai ricevuto gli errori sopra dopo aver rimosso la cartella pod

mi dà un ld: libreria non trovata per -lPods - / * Nome del mio progetto * / Tests
SleepsOnNewspapers

anche questo mi darà errori su future installazioni pod?
SleepsOnNewspapers

6

Aveva lo stesso problema che diceva /Pods/Pods-resources.sh: nessun file o directory simile anche dopo la rimozione di file ecc. Relativi ai pod.

Sbarazzarsi di esso andando a target-> fasi di compilazione e quindi rimuovendo la fase di compilazione "Copia risorse pod".


bella soluzione ma temo che dopo aver pulito il progetto e i dati derivati ​​potresti notare perché ne hai bisogno :)
Julian Król,

Quindi ottengo l'errore ".h" non trovato da fileName che utilizza il pod
coolcool1994

4

Ho avuto lo stesso problema di recente. Ho provato ogni possibile consiglio, niente tranne questo plugin ha funzionato per me:

https://github.com/kylef/cocoapods-deintegrate

Dopo aver ripulito l'attuale integrazione dei cocoapodi, ciò che resta da eliminare sono Podfile, Podfile.lock e .xcworkspace. Quindi installare nuovamente tutto da capo.

Spero di aiutare qualcuno con questo.


Questa è stata l'unica cosa che l'ha risolto per me.
Charlie,

Sono contento di poter aiutare Charlie
Chiara,

4

Questo problema è stato risolto.

  1. Seleziona Target del tuo progetto
  2. Seleziona Impostazioni di costruzione
  3. Apri l'elenco a discesa Definito dall'utente
  4. Cambia il valore della chiave PODS_ROOT in $ {SRCROOT} / Pods

Schermata per i passaggi precedenti


1
Mi è piaciuto il tuo. Ma ho ancora lo stesso errore di merda. Cos'è questo!!! nessuno ha una risposta corretta su questo.

@YumYumYum: quindi prova a reinstallare i tuoi pod.
Jayprakash Dubey,

Ho provato soprattutto soluzioni ma questa ha funzionato. Nel mio caso è rimasta la strada da percorrere in una versione.
Ankit Kargathra,

3

Penso che abbia un bug qui.
Per me, cancello la Podscartella Podfile.locke faccio di pod installnuovo per risolvere il problema.
Questo messaggio sta ignorando .. :(


2

Non è stato molto intuitivo. Sono andato alle impostazioni del progetto di base e poi ho inserito i percorsi per il mio pod.lock e pod.manifest in Check Pods Manifest.lock, perché in realtà erano rimasti in diverse cartelle, quindi i miei percorsi erano così:

diff "/Users/admin/Desktop/Experimental/projectfolder/Podfile.lock" "/Users/admin/Desktop/Experimental/projectfolder/Pods/Manifest.lock" > /dev/null
if [[ $? != 0 ]] ; then
    cat << EOM
error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.
EOM
    exit 1
fi

Lo script sembra essere generato da CocoaPod. Dove hai messo questa sceneggiatura?
Nickolas,

2

Puoi provare quanto segue. Mi ha risolto.

  1. install gem install cocoapods-deintegrate
  2. installa gem installa cocoapods-clean
  3. goto pod deintegrate
  4. baccello pulito
  5. installazione pod

I plug-in verranno rimossi dai cocoapodi per il tuo progetto e verranno installati di recente.


2

Nel mio caso, questo era un obiettivo di prova in cui ho rimosso tutti i pod dall'interno del mio podfile (perché ho aggiunto i pod che in seguito mi sono reso conto che non avevo bisogno di quel target). Nessuna delle altre soluzioni qui ha funzionato per me.

  1. Vai alla scheda Costruisci fasi nelle impostazioni del progetto per la destinazione che sta causando problemi.

  2. Elimina la sezione "Controlla manifest pods" e "Copia risorse pod"

  3. All'interno di "Link Binary With Libraries" rimuovi libPods-YourTarget.a

  4. Nelle impostazioni del progetto nella scheda Informazioni espandere "Configurazioni" e impostare la configurazione per la destinazione su Nessuna sia per il debug sia per il rilascio. (Questo risolverà un paio di avvisi di file mancanti)

  5. Elimina i dati derivati ​​dal tuo progetto (Finestra> Progetti> Elimina [accanto al progetto) e riavvia Xcode. Crea / esegui target.


2

Mi ha cambiato la giornata in positivo!

  1. Eliminazione del file Podfile.lock nella cartella del progetto
  2. Eliminazione della cartella Pods nella cartella del progetto
  3. Eseguire pod install nella cartella del progetto
  4. Fai un "Clean" in Xcode
  5. Ricostruisci il tuo progetto

1

Nel mio caso il problema era nel modo sbagliato. soluzione qui http://guides.cocoapods.org/using/tro troubleshooting.html

Se qualcosa sembra non funzionare, prima di tutto assicurati di non sostituire completamente alcuna opzione impostata dal file Pods.xcconfig nelle impostazioni di compilazione del tuo progetto. Per aggiungere valori alle opzioni dalle impostazioni di creazione del progetto, anteporre l'elenco dei valori con $ (ereditato) .


1

Ho avuto questo problema.

Il modo in cui l'ho risolto è stato cancellando completamente il Pod e implementandolo nuovamente. Assicurati di eliminare "Copia risorse pod" e "Controlla pods Manifest.lock" da "Costruisci fasi" su tutti i target come indicato qui: Come rimuovere CocoaPods da un progetto?


1

Per sbarazzarmi di questo errore, ho dovuto eliminare la Podsdirectory ed eliminare il Podfile.lockfile.


Sono d'accordo con te, ho fatto tutto ciò che hai fatto, inclusa la rimozione del file dell'area di lavoro e ha funzionato per me.
Alix,

1

Nel mio caso ho inserito Podfile.lock & Manifest.lock nel controllo del codice sorgente, ma ho dimenticato di aggiungere i file Pods-Project.debug (versione) .xcconfig al controllo del codice sorgente (aggiungendo erroneamente * .xcconfig a .gitignore), quindi I ha ottenuto gli stessi errori di compilazione con lo stesso motivo, PODS_ROOT non è stato impostato.

Quindi, se l'obiettivo è che dopo aver clonato il repository, il progetto può immediatamente costruire ed eseguire, senza avere CocoaPods installato sulla macchina, aggiungere l'intera directory Pods nel controllo del codice sorgente o aggiungere Podfile.lock, Manifest.lock, i file xcconfig del progetto e Esegue il pod dei file xcconfig sul controllo del codice sorgente.

Non ho messo il .xcconfig privato che unisce le impostazioni di compilazione con la configurazione predefinita di CocoaPods per il controllo del codice sorgente.


1

Dopo aver trascorso ore ho trovato la soluzione andare su "Build Phases" Quindi "Check Pods Manifest.lock" Selezionare "Esegui script solo durante l'installazione"

Ringraziami più tardi ;)inserisci qui la descrizione dell'immagine


1

Ho avuto lo stesso problema con il mio progetto IONIC , ho provato soprattutto soluzioni ma non fortuna.

Se hai ancora lo stesso problema, controlla se le condizioni meteo sono presenti Build Settings -> User-Defined settingso meno

1. PODS_ROOT 2.PODS_PODFILE_DIR_PATH

Se non presente, aggiungilo,

PODS_ROOT = ${SRCROOT}/Pods

PODS_PODFILE_DIR_PATH = ${SRCROOT}/

Risolverà il problema, collegamento della soluzione


0

Ho creato più target prima di usare mai i pod. Più tardi, quando ho iniziato a compilare gli altri target, ho dovuto aggiungere link_with con l'elenco dei target nel mio Podfile.


0

Ho avuto lo stesso problema. Dopo aver ripercorso i miei ultimi passaggi, ho scoperto che l' aggiunta di una dichiarazione di destinazione per una nuova destinazione, seguita dall'esecuzione pod install,era la causa del problema:

inserisci qui la descrizione dell'immagine

Il ripristino del mio ramo e la pulizia del mio progetto non hanno funzionato, poiché Cocoapods ha modificato almeno un file che non è sotto il controllo del codice sorgente. Lo so perché dopo aver reimpostato il ramo remoto su un commit prima di aggiungere la destinazione aggiuntiva e aver nuovamente clonato il repository, il problema non esisteva più.


0

Se hai un target watchOS: l'ho scoperto all'improvviso, avere dei baccelli nell'estensione watch ma non nel target watch ha rotto le cose con questo stesso errore. La soluzione era aggiungere anche i pod al target dell'orologio.



0

se hai aggiunto un nuovo target dopo aver creato Podfile, elimina Podfile, Podfile.lock, la cartella Pods e l'area di lavoro, quindi init pods>> quindi installa il pod pods


0

Dopo aver provato quanto sopra, mi sono reso conto che stavo ricevendo un errore pod install

[!] CocoaPods non ha impostato la configurazione di base del progetto perché il progetto ha già un set di configurazione personalizzato.

Questo stava causando l'errore, perché cocoapods non stava aggiungendo il file .xcconfig al mio progetto.

Per risolvere questo sono andato alla Infoscheda del mio progetto. Imposta il mio Basato sul file di configurazione su Noneper tutti gli schemi e le destinazioni. Quindi rieseguitopod install

Vedi questo link per maggiori informazioni. Avviso Cocoapods - CocoaPods non ha impostato la configurazione di base del progetto perché il progetto ha già un set di configurazione personalizzato


0

Nel mio caso, ho accidentalmente digitato un punto non necessario alla fine del file di configurazione che ha causato questo strano problema. Assicurati che il tuo file di configurazione non contenga errori!

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.