Tracciare gli arresti anomali dell’app

Queste informazioni sono utili per capire come vengono tracciati gli arresti anomali dell'app e quali best practice adottare per gestire i falsi arresti anomali.

IMPORTANTE

Effettua l'aggiornamento alla versione SDK 4.8.6 per iOS, contenente modifiche importanti grazie alle quali non vengono più segnalati i falsi arresti anomali.

Quando viene segnalato un arresto anomalo?

Se l'applicazione viene terminata senza prima passare in background, l'SDK segnala un arresto anomalo al successivo avvio dell'app.

Come funziona la segnalazione di arresti anomali?

iOS usa le notifiche di sistema che permettono agli sviluppatori di tenere traccia e rispondere a diversi stati ed eventi nel ciclo di vita dell'applicazione.

L'SDK di Adobe Mobile per iOS ha un gestore di notifiche che risponde alla notifica UIApplicationDidEnterBackgroundNotification. In questo codice, viene impostato un valore che indica che l’app è stata messa in background dall’utente. Al successivo avvio, se tale valore non viene trovato, viene registrato un arresto anomalo.

Perché Adobe misura gli arresti anomali in questo modo?

Questo approccio fornisce una risposta di alto livello alla domanda L'utente è uscito intenzionalmente dall'app?

Le librerie per la segnalazione di arresti anomali fornite da aziende come Apteligent (già Crittercism) usano un gestore NSException globale per fornire informazioni più dettagliate sugli arresti anomali. Un'app può avere un solo gestore di questo tipo. Adobe è consapevole che i suoi clienti potrebbero usare altri provider per la segnalazione di arresti anomali, e ha pertanto deciso di non implementare un gestore NSException globale, al fine di evitare errori durante la generazione dell'app.

Cosa causa la segnalazione di un arresto anomalo falso?

I seguenti scenari possono causare false segnalazioni di arresti anomali da parte dell’SDK:

  • Se esegui il debugging con Xcode, il riavvio dell’app mentre questa è in primo piano causa un arresto anomalo.

    SUGGERIMENTO

    In questo caso, per evitare l'arresto anomalo porta l'app in background prima di avviarla di nuovo da Xcode.

  • Se l'app è in background e invia hit Analytics tramite una chiamata diversa da trackActionFromBackground, trackLocation o trackBeacon e l'app viene terminata (manualmente o dal sistema operativo) mentre è in background, all'avvio successivo si verifica un arresto anomalo.

    SUGGERIMENTO

    L’attività in background che si verifica oltre la soglia lifecycleTimeout potrebbe inoltre causare un falso avvio.

  • Se l'app viene avviata in background in seguito a un richiamo in background, all'aggiornamento della posizione, e così via, e viene terminata dal sistema operativo senza tornare in primo piano, all'avvio successivo (in background o in primo piano) si verifica un arresto anomalo.

  • Se elimini in modo programmatico il flag di pausa di Adobe da NSUserDefaults mentre l'app è in background, al prossimo avvio o alla prossima ripresa si verifica un arresto anomalo.

Come posso evitare la segnalazione di falsi arresti anomali?

Le seguenti procedure possono essere utili per evitare la segnalazione di falsi arresti anomali:

  • Nell’SDK per iOS versione 4.8.6, è stato aggiunto del codice per determinare meglio se una nuova sessione del ciclo di vita sia effettivamente desiderata.

    Questo codice corregge i falsi arresti anomali descritti ai punti 2 e 3 della sezione precedente.

  • Per evitare il verificarsi del primo tipo di falsi arresti anomali, assicurati di eseguire le attività di sviluppo rispetto alle suite di rapporti non di produzione.

  • Non eliminare e non modificare i valori inseriti dall'SDK di Adobe Mobile in NSUserDefaults.

    Se tali valori vengono modificati all'esterno dell'SDK, i dati segnalati nei rapporti non saranno validi.

In questa pagina