2015-10-28 19 views
5

Secondo la documentazione di Google (Analytics per iOS), vogliono che tu scarichi un file .plist generato automaticamente per configurare la tua app. Sfortunatamente, ho più suite di report (Debug, Release) e ho bisogno di passare dinamicamente a seconda della build. Quindi sto provando a fare una delle due cose:Utilizza Google Analytics per iOS senza file .plist

  1. C'è un modo per eliminare completamente il file .plist e impostare tutte le configurazioni dinamicamente? Di quali valori si avrebbe bisogno?

OPPURE

  1. Posso modificare i valori nel file .plist Google per utilizzare le variabili da definiti dall'utente impostazioni di generazione del mio progetto? Ho provato ad aggiungere uno denominato GOOGLE_ANALYTICS_ID e a farci riferimento da $ {GOOGLE_ANALYTICS_ID} nel file Google .plist, ma non sostituisce il valore come mi aspetterei che lo faccia.

In che modo hai istruito dinamicamente la tua app per inviare a diverse suite di report a seconda che l'app sia Debug o Release?

risposta

8

Dovreste essere in grado di abbandonare il file .plist e la sua creazione in questo modo:

#import "GAI.h" 
... 
GAI *gai = [GAI sharedInstance]; 
[gai trackerWithTrackingId:@"your GA id"]; 
gai.trackUncaughtExceptions = YES; // optional 
gai.logger.logLevel = kGAILogLevelVerbose; // optional - remove for release 

Non utilizzare la roba GGLContext dal momento che sta cercando di ottenere i parametri dal file -plist.

+0

posso confermare questo funziona quando si combinano con questa risposta http://stackoverflow.com/a/24112024/1359306. Ho usato swift e impostato 'trackUncaughtExceptions' su true,' trackerWithTrackingId' e 'dispatchInterval'. – Patrick

+0

Grazie mille per questo suggerimento! Non so perché la documentazione non menzioni nemmeno questo metodo! Stavo cercando di scambiare i file plist con uno script di esecuzione nella fase di compilazione fino a quando ho trovato questa opzione! –

+0

Buono a sapersi, questo vecchio sistema funziona ancora. Grazie! –

0

Eseguire lo stesso problema. La mia soluzione era creare obiettivi di compilazione separati per il controllo qualità e la produzione, utilizzare macro pre-processore per specifiche impostazioni di destinazione nel codice e 2 file plist separati per roba come l'ID app di Facebook, ID bundle (è possibile specificare quale destinazione del build del file plist sta usando su Scheda Informazioni delle impostazioni del progetto).

Stessa cosa con GA-2 file plist per ciascun target e per evitare conflitti di denominazione (perché se si modifica il nome plist da GoogleService-Info, l'app si blocca) - semplicemente si inserisce il planner QA in una cartella separata, verrà funziona ancora bene da lì.

non si scherza con le appartenenze di destinazione per voi :) plists