2015-06-29 16 views
15

Sto provando ad aggiungere Google Analytics nel mio iSO app e sto usando Google Analytics ultimo SDK https://developers.google.com/analytics/devguides/collection/ios/v3/.

Aggiunti tutti gli header e framework necessari al mio progetto. Ma durante l'esecuzione di mia app sto ottenendo qui di seguito gli errori

  1. (null): "_OBJC_CLASS _ $ _ GGLContext", si fa riferimento da: objc-class-ref nel AppDelegate.o

  2. (null): comando di linker non riuscita con codice di uscita 1 (uso -v per vedere invocazione)

di seguito si riporta il codice di cui sono writtig in AppDelegate.m presentare

// Configure tracker from GoogleService-Info.plist. 
NSError *configureError; 
[[GGLContext sharedInstance] configureWithError:&configureError]; 
NSAssert(!configureError, @"Error configuring Google services: %@", configureError); 

// Optional: configure GAI options. 
GAI *gai = [GAI sharedInstance]; 
gai.trackUncaughtExceptions = YES; // report uncaught exceptions 
gai.logger.logLevel = kGAILogLevelVerbose; // remove before app release 

Include anche (_OBJC_CLASS _ $ _ GIDSignInButton e _OBJC_CLASS _ $ _ GIDSignIn) Indicare cosa mi manca. Grazie in anticipo.

+2

Hai trovato qualche soluzione? Ho lo stesso problema. – nfarshchi

+0

Non ancora. Ho provato sotto la risposta, ma non sta funzionando per me. – Arti

+1

Risolto questo problema. Vedi la mia risposta. Inoltre ho aggiunto libGGLCore.a al link binario con le librerie – Arti

risposta

40

"La destinazione OPN [Debug] sostituisce l'impostazione di build OTHER_LDFLAGS". Questo era il problema principale. Dopo aver aggiunto $ (ereditato) in una nuova riga in altri flag di linker, ho risolto il problema.

+3

ho provato 20 cose diverse quando mi sono imbattuto in questo. voterei due volte se potessi. – kennydust

+0

@Arti .. fantastico ... Mi piacerebbe cambiare la domanda di questo perché GGLContext era il più basso nelle priorità, fallendo lo stesso, risolto lo stesso, ma forse se hai modificato il testo del corpo della tua domanda originale per includere _OBJC_CLASS _ $ _ GIDSignInButton e _OBJC_CLASS _ $ _ GIDSignIn ... probabilmente più per altri servizi, aiuterebbe le altre vittime nella ricerca sul web a trovare più facilmente le tue domande e risposte.(Ho trascorso mezz'ora cercando invano fino a quando non sono passato a GGLContext) Grazie ancora per la soluzione :) –

+1

Bella risposta, ma per favore cambia risposta chiara –

1

Prova aggiungere libGGLCore.a e libGGLAnalytics.a a Link binario con le librerie

7

se si utilizza pod installare le librerie come suggerisce il collegamento, assicuratevi di controllare se ci sono eventuali errori quando si esegue l'installazione pod . Potrebbe essere che tu abbia modificato OTHER_CFLAGS o OTHER_LDFLAGS nelle impostazioni di generazione, il che potrebbe causare problemi. Se è questo il caso, probabilmente si desidera aggiungere "$ (ereditato)" in una nuova riga a entrambi i flag.

0

Un piccolo errore e Google SDK non funziona. Sono nuovo in CocoaPods e non sapevo, che devi aggiungere il pod di Google Analytics all'interno del tuo target. Così:

# Uncomment this line to define a global platform for your project 
platform :ios, '8.0' 
# Uncomment this line if you're using Swift 
# use_frameworks! 

target 'NAME_OF_THE_TARGET' do 
    pod 'Google/Analytics' 
end 
0

Questo è successo a me quando ho impostato un obiettivo di sviluppo. L'obiettivo di produzione stava funzionando bene ma lo sviluppo continuava a riportare quegli errori. Il mio problema era nel file pod. Inizialmente:

target 'NAME-OF-TARGET' do 
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks 
use_frameworks! 

# Pods for MAIN-TARGET 
pod 'GoogleSignIn' 
pod 'Firebase/Core' 
pod 'Firebase/Database' 

target 'DEV TARGET' do 
    inherit! :search_paths   <---------- 
    # Pods for dev-target 
    pod 'GoogleSignIn' 
    pod 'Firebase/Core' 
    pod 'Firebase/Database' 
end 

La riga che ho indicato la freccia era il problema. L'ho modificato da inherit! :search_paths a use_frameworks! e gli errori sono stati eseguiti.