Condividi tramite


Risoluzione dei problemi di Android SDK

Importante

Visual Studio App Center è previsto per il ritiro il 31 marzo 2025. Anche se è possibile continuare a usare Visual Studio App Center fino a quando non viene completamente ritirato, esistono diverse alternative consigliate che è possibile considerare la migrazione a.

Altre informazioni sulle sequenze temporali di supporto e sulle alternative.

Quali autorizzazioni Android sono necessarie?

A seconda dei servizi usati, sono necessarie le autorizzazioni seguenti:

  • Tutti i servizi: INTERNET, ACCESS_NETWORK_STATE
  • Distribuzione: REQUEST_INSTALL_PACKAGES, DOWNLOAD_WITHOUT_NOTIFICATION

Le autorizzazioni necessarie vengono unite automaticamente al manifesto dell'app dall'SDK.

Nessuna di queste autorizzazioni richiede l'approvazione dell'utente in fase di esecuzione, sono tutte autorizzazioni di installazione.

I dati di analisi non sono visualizzati nel portale

  1. Assicurarsi di aver integrato correttamente i moduli SDK.

  2. Assicurarsi che il segreto app corretto sia incluso insieme alla chiamata al start() metodo. È possibile copiare il codice esatto start() aprendo l'app nel portale e passando alla pagina Introduzione.

  3. Se si desidera visualizzare i log inviati al back-end, modificare il livello di log in Verbose nell'applicazione e l'SDK stampa i log nella console. Chiamare l'API seguente prima di avviare l'SDK.

    AppCenter.setLogLevel(Log.VERBOSE);
    
    AppCenter.setLogLevel(Log.VERBOSE)
    

    Controllare i log come "App Center SDK configurato correttamente" (a livello di log info), quindi controllare se vengono visualizzati i log delle richieste HTTPS.

  4. Assicurarsi che il dispositivo sia online.

  5. A volte, i log potrebbero richiedere alcuni minuti per visualizzare la superficie nel portale. Attendere qualche tempo se questo è il caso.

  6. Per verificare se il back-end di App Center ha ricevuto i dati, passare alla sezione Flusso di log nel servizio Analisi. Gli eventi devono essere visualizzati dopo l'invio.

Gli arresti anomali non vengono visualizzati nel portale

  1. Assicurarsi di aver integrato correttamente i moduli SDK.

  2. Assicurarsi che il segreto app corretto sia incluso insieme alla chiamata al start() metodo. È possibile copiare il codice esatto start() aprendo l'app nel portale e passando alla pagina Introduzione.

  3. Riavviare l'app dopo un arresto anomalo. L'SDK inoltra il log di arresto anomalo solo dopo il riavvio.

  4. Se si desidera visualizzare i log inviati al back-end, modificare il livello di log in Verbose nell'applicazione e l'SDK stampa i log nella console. Chiamare l'API seguente prima di avviare l'SDK.

    AppCenter.setLogLevel(Log.VERBOSE);
    
    AppCenter.setLogLevel(Log.VERBOSE)
    

    Controllare i log come "App Center SDK configurato correttamente" (a livello di log info), quindi controllare se vengono visualizzati i log delle richieste HTTPS.

  5. Assicurarsi che il dispositivo sia online.

  6. A volte, i log potrebbero richiedere alcuni minuti per visualizzare la superficie nel portale. Attendere qualche tempo se questo è il caso.

  7. Se si vuole verificare se l'SDK ha rilevato l'arresto anomalo dell'app successiva all'avvio dell'app, è possibile chiamare l'API per verificare se l'app si è arrestata in modo anomalo nell'ultima sessione e viene visualizzato un avviso. In alternativa, è possibile estendere il callback dell'arresto anomalo per verificare se è stato inviato correttamente al server.

  8. Per verificare se il back-end di App Center ha ricevuto l'arresto anomalo, passare alla sezione Flusso di log nel servizio Analisi. I tuoi arresti anomali dovrebbero essere visualizzati lì, una volta che è stato inviato.

Gli aggiornamenti distribuiti e in-app bloccano i test automatici dell'interfaccia utente

Se si eseguono test automatizzati dell'interfaccia utente, gli aggiornamenti in-app abilitati bloccano i test automatizzati dell'interfaccia utente, perché tenteranno di eseguire l'autenticazione nel back-end di App Center. È consigliabile non abilitare App Center Distribute per i test dell'interfaccia utente.

Qual è l'impatto dell'SDK di App Center sulle dimensioni dell'app Android?

App Center SDK è progettato per avere un impatto minimo sulle dimensioni dell'installazione dell'applicazione.

Per illustrare questo problema, è stata creata un'applicazione Java vuota usando il modello "app vuota" di Android Studio. Compilare l'app nella configurazione della versione e installare l'app in un dispositivo che esegue Android 7.0.

I test sono stati eseguiti senza Proguard abilitato.

I numeri seguenti possono variare e dipendono dalle impostazioni di compilazione, quindi considerarle una guida approssimativa. L'impatto dell'SDK per l'app sarà ancora inferiore se si usa Proguard.

Moduli di App Center usati Dimensioni DELL'APK esportate Dimensioni dell'installazione (come segnalato dal dispositivo)
Nessuno (app vuota) 1,3 MB 3,43 MB
Analytics in App Center 1,4 MB 3,63 MB
Arresto anomalo di App Center 1,4 MB 3,70 MB
Distribuzione di App Center 1,4 MB 3,71 MB
Tutti i moduli di App Center 1,4 MB 3,82 MB

Proteggere il valore segreto di App Center

L'identificatore app_secret dell'app è necessario sapere a quale app si applica il traffico e non può essere usato per recuperare o modificare i dati esistenti. Se l'utente app_secret è esposto, il rischio maggiore è l'invio di dati non validi all'app, ma non avrà effetto sulla sicurezza dei dati.

Per recuperare i dati sensibili, è necessario fornire un token app/utente, generato sul lato del client. Non è possibile rendere i dati sul lato client completamente sicuri.

È possibile migliorare la sicurezza dell'app usando una variabile di ambiente per inserire il segreto dell'app nel codice. In questo modo, il segreto non è visibile nel codice.

Migrazione da jCenter a Maven Central

A causa della chiusura del supporto di jCenter , tutti gli assembly sono stati spostati nel repository Maven Central. Per usare App Center, è necessario aggiungere mavenCentral() al repository nel file Gradle come illustrato di seguito:

repositories {
   google()
   mavenCentral()
}