2013-08-23 17 views
5

Sto cercando di capire: Su Android, in che modo TestFlight determina che si trova in un ambiente beta-tester e deve caricare attività sul server TestFlight? Ci sono stati alcuni similarquestions chiedendo di TestFlight su iOS, ma nessuno relativo ad Android.Quali condizioni devono essere soddisfatte affinché TestFlight invii attività al server?

Ho integrato lo TestFlight SDK nell'app per Android della mia azienda perché sembrava un'ottima soluzione per il beta test e la registrazione remota (lo usiamo già per iOS), ma non riesco a farlo inviare effettivamente le informazioni sulla sessione al server TestFlight. Dopo aver installato la mia app attraverso l'app TestFlight, ho immediatamente notato che è stata installata tramite la console Web TestFlight, quindi ... nada. Non ricevo dati di sessione o log remoti, anche se chiaramente dovrei ottenere qualcosa.

Quello che ho fatto finora:

  • Quadrupla-controllato il mio PROVA Scelta dei colori api chiave
  • verificata per certo che TestFlight.takeOff() è sempre chiamato
  • verificato che TestFlight.isActive() rapporti true
  • provato firma del apk con la chiave di debug-only
  • Ho provato a firmare l'apk con la nostra chiave di rilascio
  • controllato il registro android per errori relativi a PROVA Scelta dei colori (nessuno)
  • contattato PROVA Scelta dei colori sostenere un paio di giorni fa (ho preso contatto, ma ancora nessun progresso)

mia ipotesi attuale è che la lib PROVA Scelta dei colori pensa che sia in un ambiente di produzione, quindi non dovrebbe caricare log e informazioni sulla sessione.

SDK Documentation Il SDK Documentation non ha nulla da offrire per rispondere a questa domanda, ma sento che se ho capito quali condizioni stia cercando potrei inchiodarlo abbastanza rapidamente.

Ho attizzato in TestFlightLib.jar e ha scoperto che TestFlight.isActive() è in realtà solo la segnalazione anche se non hai già chiamato TestFlight.takeOff(), in modo che non è un buon indicatore del fatto che tutto il sistema sta funzionando.

+0

Che cosa dicono gli amici a http://help.testflightapp.com/ sul tuo problema? – 323go

+0

Hanno suggerito di ri-firmare l'app con la chiave di debug, che non ha fatto la differenza. Mi sono impegnato con loro su Twitter e attraverso il loro supporto via email. –

+0

Dovrei aggiungere, ho anche controllato a lungo la base di conoscenze di SDK TestFlight senza fortuna. La stragrande maggioranza degli articoli ci sono focalizzati su iOS, e il numero limitato di articoli relativi ad Android non mi ha dato alcuna idea. –

risposta

11

Modifica: per Isra's answer di seguito, sembra che il mio primo punto (checkpoint di batch) non sia più valido.

Dopo aver scambiato alcune e-mail con il supporto TestFlight, sto visualizzando eventi e ho una migliore comprensione di ciò che sta accadendo. Ci sono due questioni:

  1. PROVA Scelta dei colori per lotti Android checkpoint eventi e li invia al server una volta di 10 o più eventi vengono raccolti. Gli eventi non vengono mantenuti per tutta la durata del processo di app. La mia app di test creava solo due o tre punti di controllo, quindi non è mai stato inviato al server.

  2. C'è un problema evidente in cui gli eventi di registro non vengono inviati al server affatto meno che la sessione PROVA Scelta dei colori è esplicitamente conclusa con TestFlight.endSession()

Quindi, la soluzione (per ora) è in modo esplicito chiamare periodicamente TestFlight.endSession(). Speriamo che TestFlight cambierà (o almeno documenterà) questo comportamento nelle versioni future della libreria.

+0

Sei un risparmiatore di vita. Ho perso circa 2 ore cercando di capire perché non ci sono voci di registro. Grazie per aver dedicato del tempo a contattare il loro team di supporto. – chitza

+1

Ho perso più di 2 ore cercando di risolvere questo! Sono nuovo di Android e che è un doppio smacco cercando di farlo funzionare. Con quale frequenza chiami TestFlight.endSession()? Hai bisogno di chiamare un takeOff() direttamente dopo? Qualsiasi aiuto è apprezzato, sto trovando la semantica di Android molto più difficile di IOS al momento:/ – Matt

+1

Ho rinunciato a TestFlight abbastanza velocemente dopo aver postato questa risposta. Ci siamo trasferiti su Crashlytics per la registrazione remota e rapporti sugli arresti anomali, e non potrei essere più felice. Li consiglio vivamente. –

0

Abbiamo fatto funzionare chiamando TestFlight.startSession() sulle nostre attività onStart e TestFlight.endSession() su onStop.

I passaggi aggiuntivi non sono documentati in TestFlight SDK, ma sembra forzare l'applicazione a inviare registri di sessione ai server TestFlight.

1

Ho intenzione di fare un commento sul fronte del checkpoint. Posso vedere immediatamente i checkpoint segnalati senza la necessità di terminare le sessioni. Sembra che abbiano rimosso il batching su Android

Problemi correlati