2015-05-03 5 views
18

Verwenden von Kakaoschoten 0.37.0 in einem Swift-Projekt mit use_frameworks! In der Poddatei kann ich nicht auf die Headerdateien für den GoogleAnalytics-iOS-SDK-Pod zugreifen.Keine Header für GoogleAnalytics-iOS-SDK mit Cocoapods 0.37, Swift, Frameworks

Wie kann ich auf die Header des Google Analytics-Pods in meiner App zugreifen?

Ich habe es versucht;

import GoogleAnalytics_iOS_SDK 

In einer Swift-Datei, Cocoapoden 0.36 Stil. Aber es gibt kein Framework mehr, das nicht gut ist.

#import <GoogleAnalytics_iOS_SDK/GAI.h> 

Im Brückenkopf, aber funktioniert nicht (keine Modul Karte?)


Ich habe gelesen, dass das Verhalten für Schoten, die nur Überschriften in ihrem ‚sourse_files‘ in cocoapods geändert sind 0.37 (see this commit). Dies scheint auf die Probleme zurückzuführen zu sein, die use_frameworks mit diesen Pods in 0.36 (see this SO question) verursacht haben.

Mit dieser Änderung im Cocoapod-Verhalten ist die statische Bibliothek korrekt integriert (es war nicht mit 0.36), die Symbole sind in der App kompiliert und zur Laufzeit verfügbar. Aber ich habe keinen Zugriff auf die Header.

+1

Haben Sie es zur Arbeit gebracht? Ich erhalte Fehler bei #import -> Datei nicht gefunden –

+0

@techsavvy Bitte lesen Sie die akzeptierte Antwort, es erklärt eine Problemumgehung. – alexkent

Antwort

28

Dies ist ein Fehler in Cocoapods 0.37.0 hinzuzufügen. Es wurde in ihrem Tracker als issue #3499 protokolliert.

Umgehung

  • $(SRCROOT)/Pods/GoogleAnalytics-iOS-SDK In die User Header Search Paths (auf rekursive) in dem App Ziel Build Settings.
  • Referenz der Google Analytics-Header direkt in der Bridging-Header mit #import "GAI.h"
+4

Ich bin sehr unglücklich über das Hinzufügen eines Bridging-Headers nur dafür, aber scheint, als ob dies die einzige gültige Option derzeit ist. –

+0

Danke, das hat mir eine Menge Zeit erspart! – Joel

+0

Dieses Problem ist möglicherweise noch in CocoaPods 0.39.0, die ich gerade verwende. Ich habe die Suchpfade für die Benutzerkopfzeile hinzugefügt, und es funktioniert, aber ich kann nicht scheinen, dass der GGLContext für Fehler funktioniert. Wie auch immer, danke einen Haufen, rettete mir eine Menge Haare, da ich im Begriff war, alles in Frustration zu zerreißen. – ClockWise

2

Ich weiß nicht, ob dies die richtige Antwort ist oder nicht, aber die Art, wie wir es zum Laufen gebracht haben, war, libGoogleAnalyticsServices.a manuell zu importieren und nicht über Cocoapods.

Finde libGoogleAnalyticsServices.a und in das Projekt ziehen, dann fügen Sie es Linked Frameworks and Libraries (wenn es nicht schon da ist) und du bist gut zu gehen. Vergessen Sie nicht, es von Ihrem Podfile zu entfernen.

edit:
Vergessen Sie nicht, die Header-Dateien zu Ihrem Brückenkopf

+0

Danke, das ist mein Notfallplan. Ich würde gerne mit Cocoapods arbeiten, also werde ich die Frage noch etwas länger offen lassen. – alexkent

3

Ein weiterer Trick ist lang relativen Pfad (en) an den Brückenkopf hinzuzufügen.

Dies vermeidet Änderungen vornehmen Einstellungen zu projizieren, die Sie beim nächsten Mal laufen außer Kraft gesetzt werden kann `pod installieren‚:

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

Es funktioniert auch, wenn auch die Komponententests ausgeführt, die eine andere Lösung, die ich versuchte, didn‘ t.

Verwandte Themen