2013-08-23 15 views
5

Soluzione: pertanto le istruzioni di Mopub non menzionano che sono richiesti EventKit e EventKitUI. Aggiungendo questi oltre ai framework menzionati da MoPub il progetto è stato realizzato.Comprensione errore di build Xcode

Aggiornamento: Le istruzioni di MoPub sono state aggiornate.


che sto integrando di MoPub completa iOS SDK nella mia app seguendo la loro instructions. Purtroppo Ottengo i seguenti errori di generazione dopo aver aggiunto il proprio codice e quadri richiesti:

Undefined symbols for architecture i386: 

    "_OBJC_CLASS_$_EKAlarm", referenced from: 
     objc-class-ref in MRCalendarManager.o 
    "_OBJC_CLASS_$_EKEvent", referenced from: 
     objc-class-ref in MRCalendarManager.o 
    "_OBJC_CLASS_$_EKEventEditViewController", referenced from: 
     objc-class-ref in MPInstanceProvider.o 
    "_OBJC_CLASS_$_EKEventStore", referenced from: 
     objc-class-ref in MPInstanceProvider.o 
     objc-class-ref in MRProperty.o 
    "_OBJC_CLASS_$_EKRecurrenceDayOfWeek", referenced from: 
     objc-class-ref in MRCalendarManager.o 
    "_OBJC_CLASS_$_EKRecurrenceEnd", referenced from: 
     objc-class-ref in MRCalendarManager.o 
    "_OBJC_CLASS_$_EKRecurrenceRule", referenced from: 
     objc-class-ref in MRCalendarManager.o 
ld: symbol(s) not found for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

Cosa significano questi errori significano? Mi piacerebbe capirli e poi capire come risolverli da solo. Di solito quando aggiungo SDK di annunci di terze parti o di analisi il processo di integrazione è molto semplice. Quindi non ho molta esperienza nel risolvere questi tipi di errori.

Nota Ho provato a integrare l'SDK completo MoPub nella mia app e in un'applicazione di prova bare-bone. Entrambi danno gli stessi errori.

+2

Leggere le risposte a questo duplicato. Spiegherà questi errori del linker. – rmaddy

+0

@rmaddy Questo è stato sicuramente utile! La soluzione (aggiunta alla domanda) era solo l'aggiunta di framework che MoPub non menzionava. A mio parere, questa domanda dovrebbe essere mantenuta aperta fino a quando le istruzioni di MoPub non saranno aggiornate poiché potrebbero essere utili ad altri sviluppatori. – SundayMonday

+0

Eh! Ho perso 2 ore a causa del loro errore di documentazione: @ Non è ancora stato aggiornato. –

risposta

1

Quando si integra una libreria esterna nella propria app, viene generalmente compilata per funzionare con un simulatore o su un dispositivo. Credo che il tuo file .a sia stato compilato per funzionare su un dispositivo e, se costruisci un dispositivo, il tuo linker dovrebbe comportarsi meglio.

In alternativa, è possibile che tu abbia appena dimenticato di includere il file .a.

+1

Leggere le risposte nella domanda duplicata a cui ho fatto riferimento nei commenti. Imparare a leggere tali errori di linker è un'abilità importante. – rmaddy

17

Aggiungi EventKit.framework al tuo progetto.

+0

Non c'è alcun problema con 'MRCalendarManager'. Si prega di leggere di nuovo l'errore. Dichiara chiaramente che il problema è che i simboli 'EKxxx' mancanti sono referenziati da' MRCalendarManager'. Ciò significa che il framework 'EventKit' deve essere aggiunto al progetto. – rmaddy

+0

Ok scusa, quindi aggiungi EventKit.framework al tuo progetto. – satheeshwaran

+0

Aggiungi EventKitUI.framework anche al tuo progetto. – Tony