Eseguire la migrazione da HockeySDK a App Center 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.
Seguire questa documentazione se si vuole aggiornare l'applicazione per usare App Center SDK anziché HockeySDK.
1. Aggiornare le librerie
Sostituire il pacchetto HockeySDK.Xamarin NuGet con quelli di App Center in tutti i progetti nella soluzione.
Visual Studio per Mac
- Aprire Visual Studio per Mac.
- Fare clic su Apri file> e scegliere la soluzione.
- Nel navigatore della soluzione fare clic con il pulsante destro del mouse sulla sezione Pacchetti e scegliere Aggiungi pacchetti NuGet....
- Rimuovere il pacchetto HockeySDK.Xamarin .
- Cercare App Center e selezionare App Center Analytics, App Center Arresti anomali e App Center Distribute.
- Fare clic su Aggiungi pacchetti.
Visual Studio per Windows
- Aprire Visual Studio per Windows.
- Fare clic su Apri file> e scegliere la soluzione.
- Nel navigatore della soluzione fare clic con il pulsante destro del mouse su Riferimenti e scegliere Gestisci pacchetti NuGet.
- Rimuovere il pacchetto HockeySDK.Xamarin .
- Cercare App Center e installare i pacchetti Microsoft.AppCenter.Analytics, Microsoft.AppCenter.Crashes e Microsoft.AppCenter.Distribute .
Console di Gestione pacchetti
- Aprire la console in Visual Studio. A tale scopo, scegliere Strumenti>di Gestione pacchetti NuGetPackage Manager> Console.
- Se si lavora in Visual Studio per Mac, assicurarsi di aver installato Le estensioni di gestione pacchetti NuGet. Per questo motivo, scegliere Estensioni di Visual Studio>, cercare NuGet e installare, se necessario.
- Digitare il comando seguente nella console:
Uninstall-Package HockeySDK.Xamarin
Install-Package Microsoft.AppCenter.Analytics
Install-Package Microsoft.AppCenter.Crashes
Install-Package Microsoft.AppCenter.Distribute
App Center SDK è progettato con un approccio modulare: è possibile integrare solo i servizi interessati. Ogni modulo SDK deve essere aggiunto come dipendenza separata in questa sezione. Vedere le equivalenze nella tabella successiva:
Classe HockeyApp | Modulo di App Center |
---|---|
MetricsManager |
Analytics |
CrashManager |
Crashes |
UpdateManager |
Distribute |
2. Aggiornare il codice di installazione dell'SDK
2.1 Convertire l'identificatore dell'applicazione
App Center SDK usa gli identificatori dell'applicazione nel formato GUID (Global Unique Identifier). L'ID app HockeyApp può essere usato da App Center, ma è necessario convertirlo in un formato diverso. Per convertire l'identificatore, è necessario aggiungere quattro trattini per ottenere la rappresentazione 8-4-4-12.
Prima (HockeyApp): 00112233445566778899aabbccddeeff
Dopo (App Center): 00112233-4455-6677-8899-aabbccddeeff
2.2 Sostituire l'inizializzazione SDK nel codice dell'applicazione
Rimuovere il codice di registrazione di HockeyApp precedente.
Xamarin.Android - Aprire la MainActivity.cs del progetto e rimuovere le righe seguenti:
using HockeyApp.Android; ... CrashManager.Register(this, "APP_IDENTIFIER"); MetricsManager.Register(Application, "APP_IDENTIFIER"); UpdateManager.Register(this, "APP_IDENTIFIER");
Rimuovere l'attributo a livello di assembly seguente in Proprietà/AssemblyInfo.cs:
[assembly: MetaData ("net.hockeyapp.android.appIdentifier", Value="APP_IDENTIFIER")]
Xamarin.iOS - Aprire il AppDelegate.cs del progetto e rimuovere le righe seguenti:
using HockeyApp.iOS; ... var manager = BITHockeyManager.SharedHockeyManager; manager.Configure("APP_IDENTIFIER"); manager.StartManager(); manager.Authenticator.AuthenticateInstallation();
Avviare App Center SDK
- Il codice di inizializzazione indicato più avanti in questa sezione richiede l'aggiunta delle righe seguenti sotto le istruzioni esistenti
using
:
using Microsoft.AppCenter; using Microsoft.AppCenter.Analytics; using Microsoft.AppCenter.Crashes; using Microsoft.AppCenter.Distribute;
Xamarin.Android:
Aprire il file di MainActivity.cs del progetto e aggiungere la
Start()
chiamata all'interno delOnCreate()
metodoAppCenter.Start("{Your App Secret}", typeof(Analytics), typeof(Crashes), typeof(Distribute));
Nota
Se l'applicazione ha servizi in background o più punti di ingresso come un ricevitore di trasmissione, attività esportate o provider di contenuti, è consigliabile avviare
AppCenter
invece ilApplication.OnCreate
callback.Xamarin.iOS:
Aprire il file del
AppDelegate.cs
progetto e aggiungere laStart()
chiamata all'interno delFinishedLaunching()
metodoAppCenter.Start("{Your App Secret}", typeof(Analytics), typeof(Crashes), typeof(Distribute));
Nota
Se si usano arresti anomali, è necessario chiamare questo metodo nel thread ui/main ed evitare l'avvio di attività in background finché il
Start
metodo non viene restituito. Il motivo è che qualsiasi eccezione di riferimento Null rilevata da un altro thread durante l'inizializzazione degli arresti anomali può attivare un arresto anomalo nativo e ignorare la clausola catch. Una volta restituito ilAppCenter.Start
metodo, è possibile provare/intercettare di nuovo le eccezioni di riferimento Null. Per altre informazioni sulla causa di questo problema di intervallo, vedere l'articolo Segnali e report sugli arresti anomali di terze parti .Xamarin.Forms:
Per usare un'applicazione Xamarin.Forms destinata a piattaforme iOS, Android e UWP, è necessario creare tre applicazioni nel portale di App Center, una per ogni piattaforma. La creazione di tre app ti darà tre segreti dell'app, uno per ognuno. Aprire il file di App.xaml.cs del progetto (o la classe che eredita da
Xamarin.Forms.Application
) nel progetto condiviso o portatile e aggiungere il metodo seguente nelOnStart()
metodo .AppCenter.Start("ios={Your App Secret};android={Your App Secret}", typeof(Analytics), typeof(Crashes), typeof(Distribute));
Importante
Le parentesi graffe sono solo per documentare che è necessario sostituire tale contenuto con i segreti dell'app effettivi, non inserire parentesi graffe nella
Start
chiamata.Nota
Se si usa HockeyApp SDK per Android, assicurarsi di inizializzare HockeyApp SDK DOPO App Center SDK. Per l'applicazione iOS, non è possibile avere più di un SDK di creazione di report sugli arresti anomali attivi nell'app. Disabilitare la funzionalità di creazione di report degli arresti anomali degli SDK per assicurarsi che App Center possa rilevare gli arresti anomali.
Nota
Le note delle sezioni precedenti relative a iOS e Android si applicano anche a Xamarin.Forms. Se queste osservazioni si applicano all'applicazione, potrebbe essere necessario inizializzare AppCenter in posizioni diverse per piattaforma.
- Il codice di inizializzazione indicato più avanti in questa sezione richiede l'aggiunta delle righe seguenti sotto le istruzioni esistenti
[Solo per distribuire iOS] Modificare il file Info.plist del progetto
- Aggiungere una nuova chiave per
URL types
oCFBundleURLTypes
nel file Info.plist (nel caso in cui Xcode visualizzi info.plist come codice sorgente). - Modificare la chiave del primo elemento figlio in
URL Schemes
oCFBundleURLSchemes
. - Immettere
appcenter-${Your App Secret}
come schema URL e sostituire${Your App Secret}
con il segreto app dell'app.
Per altre informazioni su questo argomento, vedere la documentazione di Distribuzione di App Center.
- Aggiungere una nuova chiave per
Sostituire tutte le chiamate API HockeyApp in tutta l'applicazione. Di seguito sono riportate le tabelle di mapping delle API dettagliate.
3. Servizi e confronto delle funzionalità
Core
Funzionalità | HockeyApp | App Center |
---|---|---|
Modificare il livello di log | SharedHockeyManager.LogLevel (iOS) o HockeyLog.LogLevel (Android) |
AppCenter.LogLevel |
Identificare le installazioni | Solo iOS | AppCenter.GetInstallIdAsync |
Identificare gli utenti | Solo arresto anomalo | AppCenter.SetUserId |
Analisi
Funzionalità | HockeyApp | App Center |
---|---|---|
Tenere traccia automatica delle sessioni | Sì, può essere disabilitato solo in Android | Documentazione (non può essere disabilitata) |
Eventi personalizzati con proprietà | HockeyApp.MetricsManager.TrackEvent |
Analytics.TrackEvent |
Disabilitare il servizio in fase di esecuzione | MetricsManager.DisableUserMetrics (Android) o SharedHockeyManager.DisableMetricsManager (iOS) |
Analytics.SetEnabledAsync |
Crashes
Funzionalità | HockeyApp | App Center |
---|---|---|
Invia automaticamente arresti anomali | Disattivata per impostazione predefinita | Documentazione (abilitata per impostazione predefinita) |
Generare un arresto anomalo del test | CrashManager.GenerateTestCrash (solo iOS) |
Crashes.GenerateTestCrash |
Allegare metadati aggiuntivi | Sì | Documentazione (può essere collegata dal listener) |
Finestra di dialogo Personalizza utente | Sì | Documentazione (non fornita per impostazione predefinita) |
Ottenere informazioni sullo stato di invio | Solo Android | Documentazione |
Informazioni su un arresto anomalo precedente | CrashManager.GetLastCrashDetails (Android) o CrashManager.LastSessionCrashDetails (iOS) |
Crashes.GetLastSessionCrashReportAsync |
Disabilitare il servizio in fase di esecuzione | SharedHockeyManager.DisableCrashManager (solo iOS) |
Crashes.SetEnabledAsync |
Distribuzione
Nota
A differenza di HockeyApp, la funzionalità aggiornamenti in-app di App Center funziona solo con le build RELEASE (per impostazione predefinita) distribuite usando il servizio App Center Distribute . Se l'app usa un gruppo di distribuzione privato, dopo l'installazione e l'apertura dell'app per la prima volta dopo l'aggiunta di App Center Distribute SDK, verrà aperto un browser per autenticare l'utente e abilitare gli aggiornamenti in-app. Questo browser verrà aperto anche se si imposta la traccia di aggiornamento in-app privata in fase di esecuzione. Si tratta di un passaggio monouso che non verrà eseguito per le versioni successive dell'app. Per altri dettagli, vedere la documentazione di Distribuzione di App Center .
Funzionalità | HockeyApp | App Center |
---|---|---|
Aggiornamenti in-app con restrizioni | LoginManager.VerifyLogin (Android) o Authenticator.AuthenticateInstallation (iOS) |
Distribute.UpdateTrack |
Disabilitare il servizio in fase di esecuzione | UpdateManager.Unregister (Android) o SharedHockeyManager.DisableUpdateManager (iOS) |
Distribute.SetEnabledAsync |
Personalizzare la finestra di dialogo di aggiornamento | Sì | Distribute.ReleaseAvailable |
Servizio commenti e suggerimenti
Il servizio di feedback non sarà supportato in App Center. Vedere Il feedback di HockeyApp.