Risoluzione dei problemi di macOS SDK
Importante
Visual Studio App Center è pianificato 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 a cui è possibile prendere in considerazione la migrazione.
Altre informazioni sulle sequenze temporali di supporto e sulle alternative.
Problemi durante l'installazione
- Nella console cercare un log Di asserzione con il messaggio "App Center SDK configurato correttamente". Ciò verifica che l'SDK sia configurato correttamente.
- Se si usano Cocoapods per integrare App Center nell'app macOS e si verifica un errore con il messaggio -
CocoaPods - Unable to find a specification for AppCenter
, eseguirepod repo update
per aggiornare il repository Cocoapods locale e quindi eseguirepod install
di nuovo. - Se si integrano manualmente i file binari dell'SDK, assicurarsi che i moduli siano abilitati per il progetto.
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:withServices:
metodo. È possibile copiare il codice esattostart:withServices:
aprendo l'app nel portale e passando a Introduzione pagina.Se si vogliono visualizzare i log inviati al back-end, impostare il livello di log su Dettagliato nell'applicazione e l'SDK visualizzerà i log nella console. Inserire la chiamata seguente prima dell'avvio dell'SDK:
[MSACAppCenter setLogLevel:MSACLogLevelVerbose]
AppCenter.logLevel = .verbose
Assicurarsi che "App Center SDK configurato correttamente" venga visualizzato nei log (a livello di log INFO ), quindi controllare se vengono visualizzati i log delle richieste HTTPS.
Assicurarsi che il dispositivo sia online e che l'app abbia accesso a Internet.
Nota
Se l'app usa la sandbox dell'app, è necessario impostare la funzionalità per consentire le connessioni in ingresso (server) e in uscita (client) per consentire all'app di avere accesso a Internet. Xcode 9 abilita la sandbox dell'app per impostazione predefinita, ma le funzionalità per le connessioni in ingresso e in uscita devono essere impostate in modo esplicito.
Selezionare il progetto nello strumento di spostamento del progetto, selezionare la scheda Funzionalità e, se l'app usa la sandbox, aggiungere le funzionalità per le connessioni in ingresso e in uscita.
In alcuni casi, la visualizzazione dei log nel portale potrebbe richiedere alcuni minuti. Attendere un po' di 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 dovrebbero 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 dell'app corretto sia incluso insieme alla chiamata al
start:withServices:
metodo. È possibile copiare il codice esattostart:withServices:
aprendo l'app nel portale e passando a Introduzione pagina.Riavviare l'app dopo un arresto anomalo. Gli arresti anomali di App Center inoltrano il log di arresto anomalo solo dopo il riavvio dell'app. Inoltre, l'SDK non inoltra i log di arresto anomalo se è collegato al debugger. Assicurarsi che il debugger non sia collegato quando si arresta l'arresto anomalo dell'app.
Se si vogliono visualizzare i log inviati al back-end, impostare il livello di log su Dettagliato nell'applicazione e l'SDK visualizzerà i log nella console. Inserire la chiamata seguente prima dell'avvio dell'SDK:
[MSACAppCenter setLogLevel:MSACLogLevelVerbose]
AppCenter.logLevel = .verbose
Assicurarsi che "App Center SDK configurato correttamente" venga visualizzato nei log (a livello di log INFO ), quindi controllare se vengono visualizzati i log delle richieste HTTPS.
Non usare altre librerie che forniscono funzionalità di creazione di report di arresto anomalo del sistema. È possibile avere un solo SDK per la segnalazione di arresti anomali integrato nell'app.
Assicurarsi che il dispositivo sia online e che l'app abbia accesso a Internet.
Nota
Se l'app usa la sandbox dell'app, è necessario impostare la funzionalità per consentire le connessioni in ingresso (server) e in uscita (client) per consentire all'app di avere accesso a Internet. Xcode 9 abilita la sandbox dell'app per impostazione predefinita, ma le funzionalità per le connessioni in ingresso e in uscita devono essere impostate in modo esplicito.
Selezionare il progetto nello strumento di spostamento del progetto, selezionare la scheda Funzionalità e, se l'app usa la sandbox, abilitare le connessioni in ingresso e in uscita.
In alcuni casi, la visualizzazione dei log nel portale potrebbe richiedere alcuni minuti. Attendere un po' di tempo, se questo è il caso.
Se si vuole verificare se l'SDK ha rilevato l'arresto anomalo all'avvio dell'app successiva, è 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 di arresto anomalo
didSucceedSendingErrorReport
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 apparire lì, una volta che è stato inviato.
Proteggere il valore del segreto di App Center
app_secret
è un identificatore dell'app, è necessario sapere a quale app si applica il traffico e non può essere usata per recuperare o modificare i dati esistenti. app_secret
Se l'utente è esposto, il rischio maggiore è l'invio di dati non validi all'app, ma non avrà alcun effetto sulla sicurezza dei dati.
Per recuperare i dati sensibili, è necessario fornire un token app/utente generato sul lato del client. Non è possibile rendere completamente sicuri i dati sul lato client.
È 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.