2015-06-30 28 views
30

Sto tentando di clonare un progetto da un repository di bitbucket e ricevo un errore Id: framework not found Pods clang: error: linker command failed with exit code 1 (use -v to see invocation) quando provo a eseguire un progetto Xcode nell'area di lavoro. Questi sono i passi che ho seguito, se qualcuno potesse farmi sapere cosa sto sbagliando, sarebbe fantastico!Errore pod in Xcode "Id: framework not found Pods"

  1. git clone (link to bitbucket)
  2. cambiato le impostazioni di configurazione nel progetto cialde Xcode per none sia per il debug e rilasciare
  3. eseguita pod install
  4. aperto file dell'area di lavoro Xcode
  5. cercato di costruire in Xcode e ha ricevuto l'errore Id: framework not found Pods clang: error: linker command failed with exit code 1 (use -v to see invocation)

Modifica Ecco l'podfile:

# Uncomment this line to define a global platform for your project 
platform :ios, '8.0' 
use_frameworks! 
source 'https://github.com/CocoaPods/Specs.git' 

target 'Oncarb' do 
    pod 'Alamofire' 
    pod 'SwiftyJSON', '~> 2.2.0' 
end 

#target 'OncarbTests' do 
# pod 'Alamofire' 
# pod 'SwiftlyJSON', '~> 2.2.0' 
#end 

C'è un passo che mi manca?

Grazie!

+0

È necessario utilizzare [cocoapods] (https://cocoapods.org/) – webo80

+0

Hai aggiunto i framework pod ai binari incorporati? Spesso è necessario se vuoi costruire su un dispositivo reale – Dean

+0

@Pami - potresti pubblicare anche il tuo Podfile? –

risposta

120

Questo ha fissato per me:

  1. aprire l'area di lavoro.
  2. Fare clic sull'icona del progetto blu (che si espande nell'albero dei file) sul lato sinistro dello schermo
  3. Proprio a destra, selezionare "Obiettivi" (anziché "Progetto" - Il progetto è blu, obiettivo è come una matita e un righello e un pennello fare un triangolo)
  4. fare clic sulla scheda Generale
  5. Vai ai "quadri collegati e biblioteche" sezione (tutta la strada in basso)
  6. Eliminare i Pod quadri
  7. Aggiungi Alamofire e SwiftyJSON

Nel mio caso, non ha funzionato a meno che non abbia rimosso i framework dei pod, ma ho la sensazione che si tratti di una soluzione alternativa. Forse qualcuno con più esperienza può commentare.

+1

Ha funzionato anche per me dopo aver eliminato i framework dei pod, chiudendo Xcode, eseguendo l'aggiornamento dei pod, quindi pulisci/crea. –

+1

Ci sono così tante altre risposte sbagliate a questo>.> Grazie per aver abbattuto i passaggi! – Decoded

+1

La rimozione di "Pod.framework" da "Embedded Binaries" ha funzionato per me – DTHENG

23

A volte dopo aver rinominato un obiettivo o spostato qualcosa, è possibile corrompere l'installazione dei pod. Fortunatamente, c'è un modo più semplice per risolverlo rispetto alla soluzione di sudo make install.

  1. Eseguire pod deintegrate per rimuovere qualsiasi traccia di Cocoapod dal progetto.
  2. Eseguire nuovamente pod install per aggiungere tutto.

Questo è tutto, corretto.

+1

Ha funzionato per me, grazie! –

+0

Funzionava anche quando si verificano problemi con il pod Firebase e si ha bisogno di usare 'inherit! : complete' nel mio target di prova – richy

1

Nel mio caso, avevo diversi quadri elencati in rosso. Questi sono stati lasciati dalle precedenti configurazioni di Podfile. Ho semplicemente rimosso questi framework elencati in rosso e il problema è stato risolto.

5

I miei problemi sono quando ho eseguito il test ho ricevuto questo errore.Perché ho appena installo nel mio

target 'Project' do 
    pod 'xxx' 
end 

Si dovrebbe anche aggiungere nella tua target di test:

target 'ProjectTests' do 
    pod 'xxx' 
end 
+0

Il target di test può anche essere annidato all'interno dell'altra destinazione e quindi erediterà tutti questi pod. –

1

Una possibile causa in un esplicita importazione di un quadro Cocoapods in una classe di test/in l'obiettivo del test.

Esempio:

import XCTest 
//import AlamofireImage 
@testable import MyProject 

// instead of importing AlamofireImage: 
#if os(iOS) || os(tvOS) || os(watchOS) 
    import UIKit 
    public typealias Image = UIImage 
#elseif os(macOS) 
    import Cocoa 
    public typealias Image = NSImage 
#endif 

ho importata AlamofireImage perché ho usato esplicitamente typealias Image nel mio test, come definito in AlamofireImage.

Se è facile impedire un'importazione come nel mio esempio, fatelo. Ho appena copiato la definizione di immagine nel mio file di classe di test.

Se pensi di aver davvero bisogno di questa importazione, continua con la risposta di William Hu. Una nota in calce alla sua risposta:

target 'MyProjectTests' do 
    pod 'OnlyThatFrameworkYouImportIntoYourTest' 
end 

è necessario aggiungere solo i baccelli al bersaglio di prova, che è (necessario) l'importazione in modo esplicito.