2013-08-23 17 views
5

Lösung: so Mopub Anweisungen nicht erwähnen, dass EventKit und EventKitUI erforderlich sind. Durch Hinzufügen dieser zusätzlich zu den von MoPub erwähnten Frameworks wurde das Projekt erstellt.Understanding Xcode Build-Fehler

Aktualisierung: MoPubs Anweisungen wurden aktualisiert.


Ich Integration MoPub Full iOS SDK in meine app durch ihre instructions folgen. Leider bekomme ich die folgenden Buildfehler nach ihren Code und die erforderlichen Rahmenbedingungen und fügte hinzu:

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) 

Was bedeuten diese Fehler? Ich würde sie gerne verstehen und dann herausfinden, wie ich sie selbst reparieren kann. Wenn ich Drittanbieter-Anzeigen- oder Analytics-SDKs hinzufüge, ist der Integrationsprozess in der Regel sehr einfach. Daher habe ich nicht viel Erfahrung damit, diese Art von Fehlern zu lösen.

Hinweis Ich habe versucht, das MoPub Full SDK in meine eigene App und eine Test-App zu integrieren. Beide geben die gleichen Fehler.

+2

Lesen Sie die Antworten zu diesem Duplikat durch. Es wird diese Linkfehler erklären. – rmaddy

+0

@rmaddy Das war definitiv hilfreich! Die Lösung (hinzugefügt zu Frage) war nur Hinzufügen von Frameworks, die MoPub nicht erwähnt. Meiner Meinung nach sollte diese Frage offen bleiben, bis MoPubs Anweisungen aktualisiert werden, da es für andere Entwickler hilfreich sein könnte. – SundayMonday

+0

Huh! 2 Stunden wegen ihres Dokumentationsfehlers verschwendet: @ Es ist noch nicht aktualisiert. –

Antwort

1

Wenn Sie eine externe Bibliothek in Ihre App integrieren, wird diese im Allgemeinen so kompiliert, dass sie entweder mit einem Simulator oder auf einem Gerät funktioniert. Ich glaube, dass Ihre .a-Datei kompiliert wurde, um auf einem Gerät zu funktionieren, und wenn Sie für ein Gerät erstellen, sollte sich Ihr Linker besser verhalten.

Alternativ haben Sie vielleicht vergessen, die .a-Datei überhaupt einzuschließen.

+1

Bitte lesen Sie die Antworten in der Duplikatsfrage, auf die ich in den Kommentaren verwiesen habe. Zu lernen, solche Linkfehler zu lesen, ist eine wichtige Fähigkeit. – rmaddy

17

Fügen Sie EventKit.framework zu Ihrem Projekt hinzu.

+0

Es gibt kein Problem mit 'MRCalendarManager'. Bitte lesen Sie den Fehler erneut. Es besagt eindeutig, dass das Problem darin besteht, dass die fehlenden 'EKxxx'-Symbole von' MRCalendarManager' referenziert werden. Dies bedeutet, dass das 'EventKit'-Framework dem Projekt hinzugefügt werden muss. – rmaddy

+0

Tut mir leid, dann fügen Sie EventKit.framework zu Ihrem Projekt hinzu. – satheeshwaran

+0

Fügen Sie EventKitUI.framework Ihrem Projekt hinzu. – Tony