2015-09-22 5 views
11

Ho fatto fatica a far costruire il mio progetto xcode per le ultime due ore. Continuo a ricevere il seguente errore:Xcode 7 build fallito a causa di ld: libreria non trovata per -lGoogleAnalyticsServices

ld: library not found for -lGoogleAnalyticsServices clang: error: linker command failed with exit code 1 (use -v to see invocation)

Ho provato quasi tutto. Ho visto che il sito web di Google Developers ha dichiarato di utilizzare il pod "Google/Analytics", anche dopo aver provato quasi tutto ciò che ho trovato su StackOverflow e Google in merito all'errore, non ho avuto assolutamente fortuna.

Ho effettuato l'upgrade a XCode 7 ieri, tutto sembrava funzionare ieri ma oggi ho improvvisamente iniziato a ricevere questo errore.

Se qualcuno ha qualcosa che posso fare per questo errore, per favore aiutatemi!

Indirmi nella giusta direzione per farlo riparare sarebbe fantastico anche!

Grazie in anticipo per il vostro aiuto.

+1

può si prega di inviare il messaggio di errore intero? –

+1

messo nella domanda, non nel commento –

+0

@ Mr.T - Ho aggiornato la mia domanda – Aashay

risposta

3

Lo stesso problema si è verificato nel mio progetto. Quello che ho fatto, ho appena aggiornato tutti i miei pod e dopo che la mia app è stata compilata.

Eseguire il comando "pod update" dal terminale nella directory del progetto in cui si trova il file pod.

1

Senza guardare direttamente le impostazioni di costruzione, ci sono un certo numero di cose che potrebbero causare questo. Il problema principale è nei tuoi flag di linker, probabilmente hai qualcosa di persistente/errato. La maggior parte delle vostre cialde hanno il prefisso di:

-lPods-WhichIt-SomePodsLib 

Tuttavia, il vostro GoogleAnalyticsLibrary ha il prefisso:

-lGoogleAnalyticsServices 

Questo potrebbe indicare una bandiera persistente dal vostro. Prova a cercare questa voce in Altri linker flag (in Impostazioni di compilazione) e cancellala e riesegui l'installazione di pod.

Altre cose da controllare:

versione
  • Cocoapods è l'ultima versione stabile
  • Si utilizza l'ultima versione di Google ufficiale Analytics pod
  • La vostra biblioteca/quadro percorsi di ricerca (le impostazioni di creazione) siano correttamente indicando alla libreria di analisi in questione.

Per la cronaca, ho riscontrato problemi con i pod e utilizzo delle librerie di google prima che iniziassero ufficialmente a pubblicare in cocoapod. Se tutto il resto fallisce, rimuovere la voce del pod dal Podfile e provare ad aggiungere la libreria manualmente.

+0

Grazie per la risposta. Ho ripristinato gli altri linker link, i percorsi di ricerca della libreria, ecc. E ho provato a reinstallare tutti i miei pod e finalmente ho funzionato ieri. Come hai detto, sospettavo qualcosa da fare con i flag del linker ma non riuscivo a capire come sistemarlo. Grazie ancora! – Aashay

8

La bandiera linker è stato rinominato:

-lGoogleAnalytics 

ma le impostazioni Cocoapods non sono ancora stati aggiornati. Rinominare la voce in "Altri linker flag" e il problema verrà risolto.

Inoltre, la libreria (dal momento in cui scrivo è la versione 3.13.0) non supporta ancora Bitcode, quindi per favore disattiva Bitcode in Opzioni di creazione> Abilita codice bit> Seleziona "No". Clean & Ricostruisci in seguito.

+0

Grazie per la risposta. Come ho commentato l'altra risposta, ho ripristinato gli altri linker flag e ha iniziato a funzionare. Mi stavo chiedendo, Apple rifiuterebbe la mia app con un bitcode disabilitato? – Aashay

+0

No. Apple accetta le app senza abilitare Bitcode. – Raptor

+0

grazie.Se ho capito bene, il Bitcode deve essere abilitato se sto rilasciando anche un'app watchOS, giusto? – Aashay

4
  1. Assicurarsi di aver aperto .xcworkspace non .xcodeproj.

  2. Vai alla Biblioteca percorsi di ricerca nelle impostazioni di costruire e aggiungere

    1. $ (project_dir)/Bacelli/costruire/debug-iPhoneOS
    2. $ (ereditati)
  3. pod installare ancora.

    Aggiorna cocoapods alla versione più recente che supporta 64 arch.

    sudo update gemma cocoapods

    Elimina tutte le architetture validi e aggiungere nuovamente le architetture che appena rimosse.

    pulito e gestito