Risoluzione dei problemi di MAUI e Xamarin 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.
Raccolta di log dettagliati
Per ottenere istruzioni su come modificare il livello di log su VERBOSE
, vedere la sezione Altre API .
È possibile trovare i log dettagliati nella finestra Debug>outputdi Windows>.
Problemi durante l'installazione
- Per un'app Xamarin.Forms, assicurarsi che i pacchetti siano installati in tutti i progetti che fanno riferimento a tutte le librerie. In caso contrario, verranno visualizzati errori.
- Se viene visualizzato questo errore durante la compilazione per Xamarin.iOS:
MTOUCH: Error MT3001: Could not AOT the assembly 'obj/**/Build/Microsoft.AppCenter.**.iOS.Bindings.dll' (MT3001)
è necessario aggiornare il componente Xamarin.iOS alla versione 10.4.0.128 o successiva. - Se viene visualizzato questo errore durante la compilazione per Xamarin.iOS:
MTOUCH: Error MT5210: Native linking failed, undefined symbol: _OBJC_METACLASS_$_MS{SomeSdkClassName}. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in. (MT5210)
o un errore simile (MT5211
codice con un messaggio simile che indica App Center), assicurarsi di chiamareAppCenter.Start
prima di usare le API di un servizio specifico. Se si chiamaStart
ma si ha questo problema, è necessario aggiornare il componente Xamarin.iOS alla versione 10.4.0.128 o più recente. - Nella console cercare un log Assert con il messaggio "App Center SDK configurato correttamente". In questo modo viene verificato che l'SDK sia configurato correttamente.
I dati di analisi non sono visualizzati nel portale
Assicurarsi di aver integrato correttamente i moduli SDK.
Assicurarsi che il segreto app corretto sia incluso insieme alla chiamata al
Start()
metodo. È possibile copiare il codice esattoStart()
aprendo l'app nel portale e passando alla pagina Introduzione.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.LogLevel = LogLevel.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.
Assicurarsi che il dispositivo sia online.
A volte, i log potrebbero richiedere alcuni minuti per visualizzare la superficie nel portale. Attendere qualche tempo se questo è il caso.
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
Assicurarsi di aver integrato correttamente i moduli SDK.
Assicurarsi che il segreto app corretto sia incluso insieme alla chiamata al
Start()
metodo. È possibile copiare il codice esattoStart()
aprendo l'app nel portale e passando alla pagina Introduzione.Riavviare l'app dopo un arresto anomalo. Gli arresti anomali di App Center inoltrano il log di arresto anomalo solo dopo il riavvio. Inoltre, in Xamarin.iOS e Xamarin.Mac l'SDK non salva alcun log di arresto anomalo se è stato collegato un debugger. Assicurarsi che il debugger non sia collegato quando si arresta l'arresto anomalo dell'app iOS. In Xamarin.Android è possibile arrestare l'arresto anomalo durante il collegamento del debugger, ma è necessario continuare l'esecuzione dopo l'interruzione nell'eccezione non gestita.
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.LogLevel = LogLevel.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.
Non usare alcuna altra libreria che fornisce funzionalità di creazione di report anomali, ad esempio Xamarin Insights o HockeyApp. È possibile avere un solo SDK per la creazione di report di arresto anomalo integrato.
Assicurarsi che il dispositivo sia online.
A volte, i log potrebbero richiedere alcuni minuti per visualizzare la superficie nel portale. Attendere qualche tempo se questo è il caso.
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.
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 automatici dell'interfaccia utente man mano che tenteranno di eseguire l'autenticazione nel back-end di App Center. È consigliabile non abilitare App Center Distribute per i test dell'interfaccia utente.
Google Play rifiuta l'applicazione dopo l'aggiunta di DistributePlay
Google Play rifiuta le app che usano il Distribute
modulo perché contiene l'implementazione dell'aggiornamento in-app. Per evitare questa situazione, App Center SDK ha DistributePlay
un modulo, che contiene stub per il modulo principale. Sostituisce l'assemblaggio principale con assemblaggio stub, che imita l'API Distribute
. Non sono necessarie modifiche aggiuntive nell'applicazione client. L'oggetto DistributePlay
non include codice correlato all'aggiornamento in-app.
Se dopo aver sostituito Distribute
il modulo con DistributePlay
l'app, seguire questa procedura per verificare che il Distribute
modulo sia stato sostituito correttamente:
- Assicurarsi di aver sostituito
Distribute
DistributePlay
in tutte le versioni per tutti i gruppi di pubblicazione in Google Play Console. - Se si usa
Xamarin.Forms
, assicurarsi di aggiungere ilDistributePlay
modulo a progetti condivisi eXamarin.Android
. - Verificare che il file di output non contenga l'assembly
Microsoft.AppCenter.Distribute.Android.Bindings.dll
. È possibile usare l'analizzatore APK per controllarlo.
Messaggi nella console che indicano che il database non è stato possibile aprire in iOS
App Center usa SQLite per rendere persistenti i log prima dell'invio al back-end. Se si sta raggruppando l'applicazione con la propria libreria SQLite invece di usare quella fornita dal sistema operativo, potrebbero essere visualizzati errori come questo nella console [AppCenter] ERROR: -[MSACDBStorage executeSelectionQuery:]/147 Failed to open database
e non verranno visualizzate informazioni di analisi o arresto anomalo nel back-end. Aggiornare l'SDK alla versione 0.16.0 o successiva.
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.