it-swarm.com.de

Google/Analytics.h-Datei wurde beim Hinzufügen zu AppDelegate nicht gefunden

Ich versuche, Google Analytics mit Cocoapods in mein ios-Projekt zu integrieren. Nachdem Sie jedoch this für die Schritte bis zum Hinzufügen der Konfigurationsdatei zu meinem Projekt ausgeführt haben, erhalte ich beim Importieren von Google/Analytics.h in AppDelegate einen Fehler, weil die Datei nicht gefunden wurde. Folgende Dinge versucht:

  1. $(SRCROOT)/Pods/GoogleAnalytics zu Suchpfaden für Benutzerheader in den Build-Einstellungen hinzugefügt.

  2. libGoogleAnalyticsServices.a hinzugefügt, um Binärdateien mit Bibliotheken in Erstellungsphasen zu verknüpfen.

  3. -lGoogleAnalyticsServices unter Other Linker Flags hinzugefügt.

Ich möchte nicht wirklich 2 und 3 machen, da sie es von Cocoapods frei machen.

Was genau fehlt mir?

12
tech savvy

Probleme

  1. Die Codebeispiele auf der offiziellen Dokumentation schlagen Vor, das 1.0.0 installiert. Das hat nicht einmal Binaries für Arm64 kompiliert. 
  2. Es scheint mindestens drei separate Pods zu geben, die sich auf GA beziehen. GoogleAnalytics-iOS-SDK, GoogleAnalytics, Google/Analytics.

Lösung

Fügen Sie dies Ihrem Podfile hinzu: pod 'Google/Analytics' und dann pod install.

Das sollte funktionieren. Jetzt können Sie Google/Analytics.h einfach wie in den Dokumenten vorgeschlagen importieren:

#import <Google/Analytics.h>

Weitere Diskussion

Es gab zwei Arten von Problemen, auf die ich gestoßen bin:

  1. Bei Verwendung der falsch vorgeschlagenen Pod-Version (1.0.0) war ein 64-Bit-Kompatibilitätsproblem aufgetreten. (ld: symbol(s) not found for architecture arm64)

  2. Bei der Verwendung der anderen Pods (GoogleAnalytics-iOS-SDK und GoogleAnalytics) hatte ich Beschwerden über eine fehlende <Google/Analytics.h>-Header-Datei. ("Google/Analytics.h" not found)

Ich fand den Beitrag dieses Gentleman auf einer Mailingliste , der den Google/Analytics-Pod ohne Versionsnummer vorschlug. (pod 'Google/Analytics' wie oben angegeben.)

31
sabalaba

Swift 3

Mit Version 3.17.0 (installiert mit Pod 'GoogleAnalytics' in Podfile):

  1. Öffnen Sie yourproject.xcworkspace anstelle Ihresproject.xcodeproj
  2. Verwenden Sie #import <GoogleAnalytics/GAI.h> in der Bridging-Header-Datei

Editieren: Je jeremy piednoels Kommentar brauchen Sie möglicherweise auch 

#import <GoogleAnalytics/GAIDictionaryBuilder.h>
#import <GoogleAnalytics/GAIFields.h>
41
paul

Dies ist ein Fehler in Kokosapoden.

sie müssen $ (SRCROOT)/Pods/Google und $ (SRCROOT)/Pods/GoogleAnalytics mit rekursiver Option zu den Suchpfaden für den User-Header hinzufügen. 

Fügen Sie dann #import "Analytics.h" anstelle von #import ein 

5
Rajat Talwar

Wenn Sie $(SRCROOT)/Pods/GoogleAnalytics zu Suchpfaden für Benutzerheader in den Build-Einstellungen hinzufügen, wählen Sie auch die Option recursive aus. Dadurch kann Ihr Projekt in GoogleAnalytics und allen seinen Unterverzeichnissen suchen.

AKTUALISIERT: Ich habe das Tutorial ausprobiert und es funktioniert ohne zusätzlichen Schritt. Meine Pod-Version ist 0.35.0. Denken Sie beim Erstellen der Konfigurationsdatei daran, den GoogleAnalytics-Dienst zu aktivieren.

AKTUALISIERT: Wie @RajatTalwar darauf hinweist, müssen Sie auch $ (SRCROOT)/Pods/Google mit rekursiver Option hinzufügen. Fügen Sie dann #import "Analytics.h" anstelle von #import ein 

2
sahara108

Wenn jemand anderes einen Fehler beim Versuch hat, <Google/Analytics.h> zu importieren, und die anderen Lösungen online nicht hilfreich sind, sollten Sie weiterlesen.

Ich hatte dieses Problem und keine der Lösungen, die ich fand, konnte es beheben. Dann bemerkte ich, dass eines meiner Ziele funktionierte, während das andere nicht funktionierte (ich hatte zwei im selben Projekt), und ich versuchte herauszufinden, was der Unterschied zwischen den beiden Zielen war.

Ich habe festgestellt, dass es im Projekt auf der Registerkarte Allgemein unter Bereitstellungsinfo einen Unterschied gab, bei dem das zweite Ziel (das funktionierte) separate Optionen für iPhone und iPad hatte, das erste jedoch nicht. Ein anderer Online-Benutzer sagte, dass er diese zwei neuen Optionen erhalten habe, als er sein Ziel duplizierte. Mein zweites Ziel war ursprünglich ein Duplikat des ersten.

Um es kurz zu machenIch fand heraus, dass das Duplikat jetzt plötzlich funktionierte, wenn ich mein Ziel duplizierte. Diese separaten Optionen für iPhone und iPad sind ebenfalls magisch erschienen. Ich schätze, mein Projektziel war nicht standardmässig und verursachte ein Problem, wahrscheinlich weil dieses Projekt vor langer Zeit erstellt wurde.

Ich habe dann einfach das ursprüngliche Ziel gelöscht und das neue umbenannt, um den gleichen Namen zu erhalten, obwohl in den Build-Einstellungen, die sich auf die plist-Datei bezogen, einige Bereinigungsarbeiten erforderlich waren (es wurde eine copy.plist-Datei erstellt).

Hoffe das hilft jemandem.

0
John Bushnell

Auch meine $ 0,02 dazu, da es eine endlose Geschichte zu sein scheint. Keiner der oben genannten Vorschläge hat geholfen. Ich habe diese obskure Nachricht von pod install erhalten.

[!] The `blabla [Release]` target overrides the `HEADER_SEARCH_PATHS` build setting defined in `Pods/Target Support Files/Pods-blabla/Pods-blabla.release.xcconfig'. This can lead to problems with the CocoaPods installation

Schließlich überprüfte ich meinen project.pxbprojund stellte fest, dass ich diesen Eintrag hatte:

HEADER_SEARCH_PATHS = "";`

Natürlich wird dies als "definiert" behandelt, also habe ich es geändert

HEADER_SEARCH_PATHS = "$(inherited)";

und boom - alles, was Google vorgeschlagen hat, beinhaltet Arbeit

#import <GoogleAnalytics/GAI.h>
#import <GoogleAnalytics/GAIDictionaryBuilder.h>
#import <GoogleAnalytics/GAIFields.h>
0
decades

Überprüfen Sie, ob Sie über mehrere Ziele verfügen. Fügen Sie in diesem Fall den Pod 'Google/Analytics' für jedes Ziel in Ihrer Pod-Datei hinzu:

def google_pods
pod 'Google/Analytics'
end

target 'target 1' do
    google_pods
end

target 'target 2' do
    google_pods
end

target 'target N' do
    google_pods
end
0
christian mini