2013-09-21 14 views
46

Zbudowałem swoją aplikację (skierowaną na iOS7) i teraz chcę zastosować Google Analytics jako ostatni krok przed przesłaniem. Co zrobiłem:Nie można połączyć GoogleAnalytics 3.01 z XCode 5 (brakuje wymaganej architektury x86_64)

  1. Pobrano GA dla iOS 3.01
  2. Sprowadzone zawartości z /GoogleAnalytics/Library/ do grupy "Google Analytics"
  3. Importowane libGoogleAnalyticsServices.a do grupy "Google Analytics"
  4. Dodany Zbuduj Fazy i zamienione budować faza libGoogleAnalytics_debug.a z libGoogleAnalyticsServices.a
  5. Dodany blok kodu #include "GAI.h" do mojego -Prefix.pch -file.
  6. Zainicjuj [GAI sharedInstance] w moim AppDelegate.

Załączam zrzuty ekranu konfiguracji na dole tego posta. Kiedy próbuję zbudować (albo urządzenie lub symulator, zarówno 32-bitowe), otrzymuję następujące błędy łącznikowe:

Undefined symbols for architecture x86_64: 
    "_OBJC_CLASS_$_GAI", referenced from: 
     objc-class-ref in FTVAppDelegate.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

Jak mogę rozwiązać ten problem?

UPDATE 1

ja również dostać ostrzeżenie

ld: warning: ignoring file .../libGoogleAnalyticsServices.a, missing required architecture x86_64 in file .../libGoogleAnalyticsServices.a (3 slices) 
ld: warning: ignoring file .../SDWebImage.framework/SDWebImage, missing required architecture x86_64 in file .../SDWebImage.framework/SDWebImage (3 slices) 

UPDATE 2

Ten błąd występuje tylko wtedy, gdy budynek dla 64-bitowych. Przypadkowo ustawiłem "Zbuduj tylko dla aktywnych architektur" na NIE, kiedy zmieniło się na TAK, udało mi się zbudować jeszcze raz. Oznacza to, że aplikacja teraz NIE działa na iPhone 5S - co nadal stanowi problem.

Odpowiedz

70

Nie robisz niczego złego. Jestem prawie pewien, że Google nie dostarczył jeszcze wersji arm64 na ich libGoogleAnalyticsServices.a, co jest naprawdę denerwujące ... Od publicznego pojawienia się Xcode 5GM minęły tygodnie.

Na razie domyślam się, że buduję tylko dla armv7, armv7s lub usuwam google analytics, dopóki nie wyjdą z głowy.

UDATE: Ostatecznie ustalona https://developers.google.com/analytics/devguides/collection/ios/resources

+0

Tak więc, jeśli buduję dla armv7, armv7s niż aplikacja nie będzie działać na telefonie 5S. Albo mogę go zbudować dla telefonu 5S, ale nie będę miał reklam. – WebOrCode

+1

To będzie działać na iPhone 5S dobrze, po prostu nie będzie korzystać z 64-bitowej architektury arm64 dostępnej w telefonie. –

+0

Ten sam problem spotykam w strukturze SDImageManager. – Karthik

0

Na pierwszym zrzucie ekranu widzę, że twój projekt ma 2 cele. Czy jesteś pewien, że libGoogleAnalyticsServices.a została dodana do obu celów? Powiązane frameworki mogą się różnić od celu do celu, więc jest to najczęstszy błąd w ten sposób ... Spróbuj także usunąć GA z projektu, następnie wyczyść, następnie wyczyść folder kompilacji, a następnie ponownie uruchom Xcode i dodaj GA ponownie =) Wczoraj to pomogło mi =)

+0

Dzięki za sugestię, Petro. Jednak po prostu próbowałem i to nie pomaga. I jestem w 100% pewien, że pliki są dodawane do właściwego celu. –

+7

Po prostu uwaga dla twojej aktualizacji2, x86_64 nie jest tak naprawdę architekturą iPhone'a 5s. To arm64. W docelowych architekturach możesz wybrać "Standardowe architektury (w tym 64-bitowe)" do generowania dwóch plików binarnych - dla 32 i 64-bitowego iOS. Jeśli jednak kompilujesz z "Standardowymi architekturami" (armv7, armv7s), twoja aplikacja będzie nadal działać na iPhone'ach 5s - bez 64bitowego zwiększenia wydajności przetwarzania. Ponadto, myślę, że statyczna lib GA nie jest jeszcze zbudowana dla 32 i 64-bitowego iOS, a otrzymasz błędy takie jak "nieokreślony symbol arch arm64". –

+0

To zrobiło to dla mnie. Dzięki! –

13

Wybierz tę opcję w sekcji architektury „Build Settings”, a kod będzie działać na iPhone 5S, miałem ten sam problem.

Build Settings

8

Dobra każdy news, ustalona przez wydaniu 3.03:

64-bitowego jest teraz dostępny w v3.03 Google Analytics Services SDK dla iOS. (Source)

Powiązane problemy