it-swarm.com.de

Keine Header für GoogleAnalytics-iOS-SDK mit Cocoapods 0.37, Swift, Frameworks gefunden

Verwenden von Cocoa Pods 0.37.0 in einem Swift-Projekt mit use_frameworks! Ich kann nicht auf die Header-Dateien für den GoogleAnalytics-iOS-SDK-Pod zugreifen.

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

Ich habe versucht;

import GoogleAnalytics_iOS_SDK

In einer Swift-Datei haben Cocoapods den Stil 0,36. Aber es gibt keinen Rahmen mehr, also nichts Gutes.

#import <GoogleAnalytics_iOS_SDK/GAI.h>

Im Bridging-Header, funktioniert aber nicht (keine Modulzuordnung?)


Ich habe gelesen, dass sich das Verhalten für Pods, die nur Header in ihren 'sourse_files' enthalten, in cocoapods 0.37 (siehe dieses Commit) geändert hat. Dies scheint eine Antwort auf die Probleme zu sein, die use_frameworks in 0.36 mit diesen Pods verursacht hat (siehe diese SO Frage ).

Mit dieser Änderung des Cocoapod-Verhaltens wird die statische Bibliothek korrekt eingebunden (nicht mit 0.36), die Symbole werden in die App kompiliert und stehen zur Laufzeit zur Verfügung. Aber ich habe keinen Zugriff auf die Header.

18
alexkent

Dies ist ein Fehler in Cocoapods 0.37.0. Es wurde in ihrem Tracker als Problem # 3499 angemeldet.

Problemumgehung

  • Fügen Sie $(SRCROOT)/Pods/GoogleAnalytics-iOS-SDK zum User Header Search Paths (auf Recursive gesetzt) ​​im Build Settings des App-Ziels hinzu.
  • Verweisen Sie mit #import "GAI.h" direkt auf den Google Analytics-Header im Bridging-Header.
28
alexkent

Ein weiterer Trick besteht darin, dem Bridging-Header lange relative Pfade hinzuzufügen.

So müssen Sie keine Änderungen an den Projekteinstellungen vornehmen, die beim nächsten Ausführen von "Pod-Installation" möglicherweise überschrieben werden:

#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 Sie Ihre Unit-Tests ausführen. Eine andere Lösung habe ich nicht versucht.

3
Chris

Ich weiß nicht, ob dies die richtige Antwort ist oder nicht, aber wir haben es geschafft, libGoogleAnalyticsServices.a manuell und nicht über Cocoapods zu importieren.

Suchen Sie libGoogleAnalyticsServices.a und ziehen Sie ihn in das Projekt. Fügen Sie ihn dann zu Linked Frameworks and Libraries hinzu (sofern er noch nicht vorhanden ist), und los geht's. Vergessen Sie nicht, es aus Ihrer Podfile zu entfernen.

bearbeiten:
Vergessen Sie nicht, die Header-Dateien zu Ihrem Bridging-Header hinzuzufügen

2
Simon

Ich hatte ein ähnliches Problem mit CocoaPods 0.39.0.

$ (geerbt) in Build-Einstellung 'OTHER_LDFLAGS' hat es gelöst.

https://stackoverflow.com/a/32004207/3129306

0
Jan F.