Condividi tramite


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

  1. 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();
      
  2. 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 del OnCreate() metodo

    AppCenter.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 il Application.OnCreate callback.

    Xamarin.iOS:

    Aprire il file del AppDelegate.cs progetto e aggiungere la Start() chiamata all'interno del FinishedLaunching() metodo

    AppCenter.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 il AppCenter.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 nel OnStart() 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.

  3. [Solo per distribuire iOS] Modificare il file Info.plist del progetto

    • Aggiungere una nuova chiave per URL types o CFBundleURLTypes 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 o CFBundleURLSchemes.
    • 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.

  4. 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 Documentazione (può essere collegata dal listener)
Finestra di dialogo Personalizza utente 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 Distribute.ReleaseAvailable

Servizio commenti e suggerimenti

Il servizio di feedback non sarà supportato in App Center. Vedere Il feedback di HockeyApp.