2015-05-03 13 views
18

Używanie strąków kakao 0.37.0 w projekcie Swift, z use_frameworks! ustawione w podfile, nie mam dostępu do plików nagłówkowych dla pakietu GoogleAnalytics-iOS-SDK.Nie można znaleźć nagłówków dla GoogleAnalytics-iOS-SDK z Cocoapods 0.37, Swift, frameworks

Jak uzyskać dostęp do nagłówków pod Google Analytics w mojej aplikacji?

Próbowałem;

import GoogleAnalytics_iOS_SDK 

W pliku Swift, styl cocoapods 0.36. Ale nie ma już stworzonej struktury, więc nic dobrego.

#import <GoogleAnalytics_iOS_SDK/GAI.h> 

W nagłówku pomostowej, ale nie działa (no moduł map?)


Czytałem, że zachowanie na strąków, które zawierają tylko nagłówki w ich „sourse_files” zmieniło się w cocoapods 0,37 (see this commit). Wydaje się, że jest to odpowiedź na problemy, z których wynikają ramiona spowodowane tymi strąkami w 0.36 (see this SO question).

Dzięki tej zmianie w zachowaniu Cocoapod biblioteka statyczna została poprawnie zintegrowana (nie było to z 0.36), symbole są kompilowane do aplikacji i dostępne w środowisku wykonawczym. Ale nie mam dostępu do nagłówków.

+1

Czy to działa? Dostaję błąd w #import -> nie znaleziono pliku –

+0

@techsavvy przeczytaj zaakceptowaną odpowiedź, wyjaśnienie obejścia. – alexkent

Odpowiedz

28

Jest to błąd w Cocoapods 0.37.0. Został zalogowany w ich trackerze jako issue #3499.

Obejście

  • Dodaj $(SRCROOT)/Pods/GoogleAnalytics-iOS-SDK do User Header Search Paths (ustawiony na rekurencyjnych) w docelowej aplikacji Build Settings.
  • referencyjny nagłówek Google Analytics bezpośrednio w nagłówku Pomostowych z #import "GAI.h"
+4

Jestem bardzo niezadowolony z konieczności dodania nagłówka pomostowego tylko do tego, ale wygląda na to, że obecnie jest to jedyna poprawna opcja. –

+0

Dzięki, zaoszczędziło mi to mnóstwo czasu! – Joel

+0

Ten problem może nadal występować w CocoaPods 0.39.0, z którego aktualnie korzystam. Dodałem ścieżki wyszukiwania nagłówka użytkownika i działa, ale nie mogę uzyskać GGLContext do pracy z powodu błędów. W każdym razie, dzięki za paczkę, uratowałem mi dużo włosów, ponieważ miałem zamiar zedrzeć to z frustracji. – ClockWise

2

Nie wiem, czy to jest poprawna odpowiedź, czy nie, ale sposób w jaki działaliśmy, to ręczne zaimportowanie libGoogleAnalyticsServices.a, a nie za pomocą cocoapods.

Znajdź libGoogleAnalyticsServices.a i przeciągnij go do projektu, a następnie dodaj do Linked Frameworks and Libraries (jeśli go już tam nie ma) i możesz już iść. Nie zapomnij go usunąć z telefonu Podfile.

edit:
Nie zapomnij dodać pliki nagłówkowe do pomostowej nagłówku

+0

Dzięki, to jest mój plan awaryjny. Chciałabym, żeby działała z Cocoapods, więc zostawię to pytanie jeszcze trochę dłużej. – alexkent

3

Innym sposobem jest dodanie długą ścieżkę względną (ów) do nagłówka pomostowej.

ten unika konieczności wprowadzania zmian do projektu ustawienia, które mogą być nadpisane następnym uruchomieniu `Pod install„:

#import "../../Pods/GoogleAnalytics/Headers/Public/GAI.h" 
#import "../../Pods/GoogleAnalytics/Headers/Public/GAIFields.h" 
#import "../../Pods/GoogleAnalytics/Headers/Public/GAIDictionaryBuilder.h" 

To działa również podczas uruchamiania swoich testów jednostkowych też, co inne rozwiązanie Próbowałem didn” t.

Powiązane problemy