2013-12-18 7 views
12

Ich habe GAI mit der neuesten Version von cocoapods integriert.Archivierung schlägt fehl wegen nicht definierter Symbole für Google Analytics

Wenn ich die Debug-Konfiguration einbaut alles läuft gut. jedoch sobald ich versuche, die Anwendung zur Archivierung der Compiler mit den folgenden Meldungen fehl:

Undefined symbols for architecture armv7: 
    "_OBJC_CLASS_$_GAIDictionaryBuilder", referenced from: 
     objc-class-ref in libWLCore.a(WLTrackingHelper.o) 
    "_OBJC_CLASS_$_GAI", referenced from: 
     objc-class-ref in libWLCore.a(WLTrackingHelper.o) 
    "_kGAIScreenName", referenced from: 
     +[WLTrackingHelper trackView:] in libWLCore.a(WLTrackingHelper.o) 
     +[WLTrackingHelper resetView] in libWLCore.a(WLTrackingHelper.o) 
    "_kGAIAnonymizeIp", referenced from: 
     +[WLTrackingHelper prepareDefaultTracker:withAnonymization:withUnCaughtExceptions:withDebug:] in libWLCore.a(WLTrackingHelper.o) 
ld: symbol(s) not found for architecture armv7 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

Da es in Debug funktioniert Ich habe versucht, in dem der Unterschied in der Konfiguration zwischen Debug, um herauszufinden, und Lügen los. Ich habe festgestellt, dass die anderen Linker Flags in Release leer sind, während in Debug das Flag für GoogleAnalytics und andere Frameworks und Bibliotheken enthält.

Nach dem Hinzufügen der Fahnen auf der Release-Konfiguration der anderen Linker-Flags bekam ich

library not found for -lGoogleAnalyticsServices 

Danach habe ich libPods und danach libPods-Google zum Link-Binary mit Bibliotheken Abschnitt hinzugefügt, aber die Fehler gleich geblieben .

Ich investierte fast 2 Tage in dieses Problem, aber ich konnte keine Lösung finden.

Antwort

7

Nach einigem Tüfteln fand ich die Lösung, indem ich nicht die von Kakaoschoten erzeugte Bibliothek (libPods-GoogleAnalytics) hinzufügte, sondern die libGoogleAnalyticsServices direkt mit meinem Hauptprojekt verknüpfte. Dennoch denke ich, dass dies nicht die eleganteste Lösung ist, da der Linker wissen sollte, dass die Symbole, die ihm fehlten, bereits verfügbar waren, wie von Cocoapoden bereitgestellt.

+0

Hallo, es funktioniert, wenn Sie die statische Bibliothek auch mit dem Analytics-Cocoapod-Projekt verknüpfen. Ich denke, das ist 5% besser. –

+0

@TiborUdvari wie? – Sti

1

Bitte bestätigen Sie, dass Sie $ (geerbt) zu anderen Linker-Flags (Build-Einstellungen) wie in der folgenden Abbildung hinzugefügt haben. Fügen Sie das Gleiche auch in Release hinzu, sonst wird zum Zeitpunkt der Archivierung der gleiche Fehler angezeigt. enter image description here