2015-03-07 25 views
10

Ho un'app con entrambi i framework Parse e Facebook installati. Parse è stato installato trascinando i file nella cartella "Frameworks" del progetto e selezionando "copia se necessario", mentre l'SDK di Facebook è stato installato trascinando e non selezionando l'opzione di copia. Entrambi compaiono sotto l'elenco dei binari collegati. Il problema sembra essere che i bulloni sono inclusi in entrambi gli SDK. Ho provato usando solo quello di Facebook, che produce i seguenti errori Link-O:Errore "Pari" e "SDK" di Facebook SDK

Undefined symbols for architecture x86_64: 
    "_BFTaskMultipleExceptionsException", referenced from: 
     ___53+[PFObject(Private) deleteAllAsync:withSessionToken:]_block_invoke214 in Parse(PFObject.o) 
     ___65+[PFObject(Private) _deepSaveAsync:withCurrentUser:sessionToken:]_block_invoke311 in Parse(PFObject.o) 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

ho cancellato il link al Facebook uno e provato trascinando il Parse uno, ma l'errore persisteva. Ho anche ricevuto l'avviso che

ld: warning: ignoring file /Users/milesper/Documents/FacebookSDK/Bolts.framework/Bolts, missing required architecture x86_64 in file /Users/milesper/Documents/FacebookSDK/Bolts.framework/Bolts (2 slices) 

anche se avevo eliminato il file dal Facebook SDK.

Come si pulisce il progetto e si collega alla versione Parse dei bulloni? C'è qualcos'altro che dovrei fare?

+0

Utilizzare cocoapods.org rende tutto molto più semplice. – Fogmeister

+0

Avevo un sacco di problemi con Mach-O, anche così ho scelto di non eseguire – milesper

+0

Hai verificato che stavi aprendo il file .xcworkspace dopo aver installato i pod? Non il file xcproject. – Fogmeister

risposta

3

Beh, l'ho trovato. Il problema era che i vecchi file (che ora venivano cancellati) venivano referenziati nel "Flag dei percorsi di ricerca della libreria". Grazie a this post per avermi dato l'idea. Tutto quello che dovevo fare era cancellare i vecchi percorsi e ora funziona di nuovo.

MODIFICA: sembra che per alcune situazioni l'ordine dei percorsi di ricerca sia importante (vedi sotto).

+0

Quindi stai usando parse 1.6.4 e facebookSDK senza Cacoa Pods? niente sta funzionando per me. Ancora ricevendo errori di collegamento. Non c'è nulla nei miei percorsi di ricerca della libreria – stone

+0

Quali sono gli errori di collegamento? – milesper

+0

Ho ottenuto lo stesso come sopra, ma ora riparato. vedere la mia risposta sotto – stone

5

Elimina l'ordine in cui includi/cerchi i framework nei tuoi argomenti di progetto.

Ecco che cosa ho fatto di lavorare con Parse 1.6.4 e FacebookSDK senza CacoaPods

  1. utilizzare l'ultima versione di bulloni. (1.1.4)
  2. vostro percorsi di inclusione devono essere ordinati per trovare Bolt, poi FacebookSDK, quindi analizzare

Ordering your search paths

+0

Sì, ho salvato la mia notte: +1: –

3

che ha funzionato per me Temporary workaround for Parse 1.6.4 and Facebook SDK 3.23

Aggiungi alla tua AppDelegate.m o di un altro classe dopo costante dopo l'importazione e prima della sezione di implementazione: NSString *const BFTaskMultipleExceptionsException = @"BFMultipleExceptionsException";

La spiegazione del bug https://stackoverflow.com/a/29136507/1345244

Una trucco che ho trovato per lavorare intorno a simboli mancanti, è stato appena ridefinendo ancora una volta il simbolo mancante nel mio codice.

La stringa BFTaskMultipleExceptionsException è definito qui in questo modo:

NSString * const BFTaskMultipleExceptionsException = @ "BFMultipleExceptionsException"; Quindi forse prova a mettere quella riga nel tuo codice?

Dalla cronologia su github, sembra che questo sia stato appena aggiunto a Bolts circa 19 giorni fa. La versione 1.1.4 di Bulloni è stata rilasciata 14 giorni fa (1.1.3 era da ottobre dell'anno scorso). Quindi probabilmente è causato dalla mancata corrispondenza della versione di Bulloni che hai notato.

Un'altra opzione potrebbe essere quella di ottenere una versione precedente di Parse prima dell'uscita di Bulloni 1.1.4.

Presumibilmente questo sarà risolto una volta che un nuovo SDK di Facebook è disponibile con Bulloni 1.1.4.

2

stesso problema qui.

ho avuto entrambi i quadri inclusi senza alcun problema, fino a quando ho aggiunto SponsorPay SDK che ha bisogno di aggiungere la -ObjC in "Altre Bandiere Linker" a bersaglio "Impostazioni Costruire".

Quindi, nella mia esperienza questo problema si verifica solo quando è presente il flag -ObjC.

Ho provato tutte le soluzioni esposte qui ma nulla ha funzionato per me, spero che chiunque possa portare più luce su come risolvere questo problema anche con il flag -ObjC attivo.

EDIT:

C'è una domanda relativa a questo, metto il link qui a caso è utile a qualcuno: Contradicting frameworks on -ObjC

0

ho avuto qualche problema, ho semplicemente rimuovere Parser.framework in Framework e librerie collegate e funzionano bene.