Vraag Google / Analytics.h-bestand niet gevonden bij het toevoegen aan AppDelegate


Ik probeer Google Analytics te integreren in mijn ios-project met CocoPods. Echter, na het volgen deze voor de stappen tot het toevoegen van configuratiebestand aan mijn project, bij het importeren van Google / Analytics.h in AppDelegate krijg ik de foutmelding dat het bestand niet is gevonden. De volgende dingen geprobeerd:

  1. Toegevoegd $(SRCROOT)/Pods/GoogleAnalytics naar gebruikerskoptekstzoekpaden in bouwinstellingen.

  2. Toegevoegd libGoogleAnalyticsServices.a om binair te linken met bibliotheken in bouwfasen.

  3. Toegevoegd -lGoogleAnalyticsServices in andere Linker-vlaggen.

Wil niet echt 2 en 3 doen omdat ze het van Cocoapods bevrijden.

Wat mis ik precies?


11
2017-07-15 09:52


oorsprong


antwoorden:


Problemen

  1. De codevoorbeelden op de officiële documentatie stel voor installatie van 1.0.0. Waarbij zelfs geen binaries zijn gecompileerd arm64.
  2. Er lijken minstens drie afzonderlijke pods aan gerelateerd te zijn GA. GoogleAnalytics-iOS-SDK, GoogleAnalytics, Google / Analytics.

Oplossing

Voeg dit toe aan uw Podfile: pod 'Google/Analytics' en dan pod install.

Dat moet werken. Nu kunt u gewoon Google / Analytics.h importeren zoals voorgesteld in de documenten:

#import <Google/Analytics.h>

Verdere discussie

Er waren twee soorten problemen die ik tegenkwam:

  1. Bij gebruik van de onjuist voorgestelde podversie (1.0.0) was er een 64-bits compatibiliteitsprobleem. (ld: symbol(s) not found for architecture arm64)

  2. Bij het gebruik van de andere pods (GoogleAnalytics-iOS-SDK en GoogleAnalytics) had ik klachten over een vermissing <Google/Analytics.h> header-bestand. ("Google/Analytics.h" not found)

Ik heb de post van deze heer gevonden op een mailinglijst waarin de Google / Analytics-pod werd voorgesteld zonder versienummer. (pod 'Google/Analytics' Zoals hierboven aangegeven.)


31
2017-08-01 06:11



Snel 3

Met versie 3.17.0 (geïnstalleerd met pod 'GoogleAnalytics' in Podfile):

  1. Open yourproject.xcworkspace in plaats van yourproject.xcodeproj
  2. Gebruik #import <GoogleAnalytics/GAI.h> in het bridging header-bestand

Bewerk: Per jeremy piednoel's opmerking die je misschien ook nodig hebt

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

40
2017-09-10 01:18



Dit is een bug in cocoapoda.

je moet $ (SRCROOT) / Pods / Google en $ (SRCROOT) / Pods / GoogleAnalytics met recursieve optie toevoegen aan je User Header Search Paths.

Voeg vervolgens de #import "Analytics.h" toe in plaats van #import


5
2017-09-02 03:51



Wanneer u toevoegt $(SRCROOT)/Pods/GoogleAnalytics naar Gebruikerskoptekst Zoekpaden in Bouwinstellingen, selecteer ook recursive keuze. Hiermee kunt u in uw project zoeken GoogleAnalytics en alle submappen.

UPDATE: Ik heb de tutorial geprobeerd en het werkt prima zonder een extra stap. Mijn podversie is 0.35.0. Denk eraan om de GoogleAnalytics-service in te schakelen wanneer u een configuratiebestand maakt.

UPDATE: Zoals @RajatTalwar opmerkt, moet je ook $ (SRCROOT) / Pods / Google toevoegen met een recursieve optie. Voeg vervolgens de #import "Analytics.h" toe in plaats van #import


2
2017-07-15 10:37



Als iemand anders een foutmelding heeft bij het proberen #import <Google / Analytics.h>, en de andere online oplossingen helpen je niet, lees dan verder.

Ik had dit probleem en geen van de oplossingen die ik vond zou het repareren. Toen merkte ik dat een van mijn doelen werkte terwijl de andere niet werkte (ik had er twee in hetzelfde project), en ik probeerde op te sporen wat het verschil was tussen de twee doelen.

Ik merkte dat er een verschil was in het project op het tabblad Algemeen onder Deployment-info, waar het tweede doel (het doelwit) afzonderlijke opties voor de iPhone en iPad had, maar het eerste niet. Iemand anders online zei dat ze deze twee nieuwe opties ontvingen toen ze hun doel dupliceerden. Mijn tweede doel was oorspronkelijk ook een duplicaat van de eerste.

Om een ​​lang verhaal kort te maken, Ik ontdekte dat als ik mijn doel dupliceerde dat het duplicaat nu ineens werkte. Die afzonderlijke iPhone- en iPad-opties zijn ook magisch verschenen. Dus ik vermoed dat mijn projectdoel niet-standaard was en een probleem veroorzaakte, waarschijnlijk omdat dit project lang geleden is gemaakt.

Ik heb vervolgens het originele doelwit verwijderd en de nieuwe hernoemd als dezelfde naam, hoewel er wat opruimen nodig was in de build-instellingen voor het plist-bestand (het maakte een copy.plist-bestand).

Ik hoop dat dit iemand helpt.


0
2017-08-21 17:31



Controleer of u meerdere doelen heeft, voeg in dit geval pod 'Google / Analytics' toe voor elk doel in uw podbestand:

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
2017-10-18 15:54