Compartir a través de


Migración desde HockeySDK al SDK de Xamarin de App Center

Importante

Visual Studio App Center está programado para la retirada el 31 de marzo de 2025. Aunque puede seguir usando Visual Studio App Center hasta que se retire por completo, hay varias alternativas recomendadas a las que puede considerar la posibilidad de migrar.

Obtenga más información sobre las escalas de tiempo de soporte técnico y las alternativas.

Siga esta documentación si desea actualizar la aplicación para usar el SDK de App Center en lugar de HockeySDK.

1. Actualización de las bibliotecas

Reemplace el paquete NuGet HockeySDK.Xamarin por los de App Center en todos los proyectos de la solución.

Visual Studio para Mac

  • Abra Visual Studio para Mac.
  • Haga clic en Abrir archivo>y elija la solución.
  • En el navegador de soluciones, haga clic con el botón derecho en la sección Paquetes y elija Agregar paquetes NuGet....
  • Quite el paquete HockeySDK.Xamarin .
  • Busque App Center y seleccione Análisis de App Center, Bloqueos de App Center y Distribución de App Center.
  • Haga clic en Agregar paquetes.

Visual Studio para Windows

  • Abra Visual Studio para Windows.
  • Haga clic en Abrir archivo>y elija la solución.
  • En el navegador de soluciones, haga clic con el botón derecho en Referencias y elija Administrar paquetes NuGet.
  • Quite el paquete HockeySDK.Xamarin .
  • Busque App Center e instale los paquetes Microsoft.AppCenter.Analytics, Microsoft.AppCenter.Crashes y Microsoft.AppCenter.Distribute .

Consola del Administrador de paquetes

  • Abra la consola en Visual Studio. Para ello, elija Herramientas>Consola del Administrador> de paquetes NuGet Administrador depaquetes.
  • Si está trabajando en Visual Studio para Mac, asegúrese de que ha instalado extensiones de administración de paquetes NuGet. Para ello, elijaExtensiones de Visual Studio>, busque NuGet e instale, si es necesario.
  • Escriba el siguiente comando en la consola:
Uninstall-Package HockeySDK.Xamarin
Install-Package Microsoft.AppCenter.Analytics
Install-Package Microsoft.AppCenter.Crashes
Install-Package Microsoft.AppCenter.Distribute

El SDK de App Center está diseñado con un enfoque modular: solo puede integrar los servicios que le interesen. Cada módulo del SDK debe agregarse como una dependencia independiente en esta sección. Vea las equivalencias en la tabla siguiente:

HockeyApp (clase) Módulo de App Center
MetricsManager Analytics
CrashManager Crashes
UpdateManager Distribute

2. Actualización del código de instalación del SDK

2.1 Convertir el identificador de aplicación

El SDK de App Center usa identificadores de aplicación en el formato de identificador único global (GUID). App Id. de HockeyApp se puede usar en App Center, pero debe convertirlo a un formato diferente. Para convertir el identificador, debe agregar cuatro guiones para obtener representación 8-4-4-4-12.

Antes (HockeyApp): 00112233445566778899aabbccddeeff

Después (App Center): 00112233-4455-6677-8899-aabbccddeeff

2.2 Reemplazar la inicialización del SDK en el código de la aplicación

  1. Quite el código de registro de HockeyApp antiguo.

    • Xamarin.Android : abra el MainActivity.cs del proyecto y quite las líneas siguientes:

      using HockeyApp.Android;
      
      ...
      
      CrashManager.Register(this, "APP_IDENTIFIER");
      MetricsManager.Register(Application, "APP_IDENTIFIER");
      UpdateManager.Register(this, "APP_IDENTIFIER");
      

      Quite el siguiente atributo de nivel de ensamblado en Properties/AssemblyInfo.cs:

      [assembly: MetaData ("net.hockeyapp.android.appIdentifier", Value="APP_IDENTIFIER")]
      
    • Xamarin.iOS : abra el AppDelegate.cs del proyecto y quite las líneas siguientes:

      using HockeyApp.iOS;
      
      ...
      
      var manager = BITHockeyManager.SharedHockeyManager;
      manager.Configure("APP_IDENTIFIER");
      manager.StartManager();
      manager.Authenticator.AuthenticateInstallation();
      
  2. Inicio del SDK de App Center

    • El código de inicialización mencionado más adelante en esta sección requiere agregar las líneas siguientes debajo de las instrucciones existentes using :
    using Microsoft.AppCenter;
    using Microsoft.AppCenter.Analytics;
    using Microsoft.AppCenter.Crashes;
    using Microsoft.AppCenter.Distribute;
    

    Xamarin.Android:

    Abra el archivo MainActivity.cs del proyecto y agregue la Start() llamada dentro del OnCreate() método .

    AppCenter.Start("{Your App Secret}", typeof(Analytics), typeof(Crashes), typeof(Distribute));
    

    Nota

    Si la aplicación tiene servicios en segundo plano o varios puntos de entrada, como un receptor de difusión, actividades exportadas o proveedores de contenido, se recomienda iniciar AppCenter en la Application.OnCreate devolución de llamada en su lugar.

    Xamarin.iOS:

    Abra el archivo del AppDelegate.cs proyecto y agregue la Start() llamada dentro del FinishedLaunching() método .

    AppCenter.Start("{Your App Secret}", typeof(Analytics), typeof(Crashes), typeof(Distribute));
    

    Nota

    Si usa Bloqueos, debe llamar a este método en el subproceso principal o de la interfaz de usuario y evitar iniciar tareas en segundo plano hasta que el Start método devuelva. El motivo es que cualquier excepción de referencia nula detectada desde otro subproceso mientras crashes se inicializa puede desencadenar un bloqueo nativo e ignorar la cláusula catch. Una vez que el AppCenter.Start método vuelve, es seguro probar o detectar las excepciones de referencia nulas de nuevo. Puede leer más sobre la causa de este problema de tiempo en el artículo Señales y periodistas de bloqueos de terceros .

    Xamarin.Forms:

    Para usar una aplicación de Xamarin.Forms destinada a plataformas iOS, Android y UWP, debe crear tres aplicaciones en el portal de App Center, una para cada plataforma. La creación de tres aplicaciones le proporcionará tres secretos de aplicación: uno para cada una. Abra el archivo App.xaml.cs del proyecto (o la clase que hereda de Xamarin.Forms.Application) en el proyecto compartido o portátil y agregue el método siguiente en el OnStart() método .

    AppCenter.Start("ios={Your App Secret};android={Your App Secret}", typeof(Analytics), typeof(Crashes), typeof(Distribute));
    

    Importante

    Las llaves son solo para documentar que debe reemplazar ese contenido por los secretos de aplicación reales, no coloque llaves en la Start llamada.

    Nota

    En caso de que use el SDK de HockeyApp para Android, asegúrese de inicializar el SDK de HockeyApp DESPUÉS del SDK de App Center. En el caso de la aplicación iOS, no es posible tener más de un SDK de informes de bloqueos activo en la aplicación. Deshabilite la funcionalidad de informes de bloqueos de otros SDK para asegurarse de que App Center pueda detectar los bloqueos.

    Nota

    Las notas de las secciones anteriores sobre iOS y Android también se aplican a Xamarin.Forms. Si esos comentarios se aplican a la aplicación, es posible que tenga que inicializar AppCenter en distintos lugares por plataforma.

  3. [Solo para distribuir iOS] Modificar el archivo Info.plist del proyecto

    • Agregue una nueva clave para URL types o CFBundleURLTypes en el archivo Info.plist (en caso de que Xcode muestre info.plist como código fuente).
    • Cambie la clave del primer elemento secundario a URL Schemes o CFBundleURLSchemes.
    • Escriba appcenter-${Your App Secret} como esquema de dirección URL y reemplace por ${Your App Secret} el secreto de aplicación de la aplicación.

    Para obtener más información sobre esto, consulte la documentación de Distribución de App Center.

  4. Reemplace todas las llamadas API de HockeyApp en toda la aplicación. A continuación se indican las tablas detalladas de asignación de API.

3. Comparación de servicios y características

Core

Característica HockeyApp App Center
Ajuste del nivel de registro SharedHockeyManager.LogLevel (iOS) o HockeyLog.LogLevel (Android) AppCenter.LogLevel
Identificación de instalaciones Únicamente iOS AppCenter.GetInstallIdAsync
Identificación de usuarios Solo bloqueo AppCenter.SetUserId

Análisis

Característica HockeyApp App Center
Realizar un seguimiento automático de las sesiones Sí, solo se puede deshabilitar en Android Documentación (no se puede deshabilitar)
Eventos personalizados con propiedades HockeyApp.MetricsManager.TrackEvent Analytics.TrackEvent
Deshabilitación del servicio en tiempo de ejecución MetricsManager.DisableUserMetrics (Android) o SharedHockeyManager.DisableMetricsManager (iOS) Analytics.SetEnabledAsync

Bloqueos

Característica HockeyApp App Center
Envío automático de bloqueos Deshabilitado de forma predeterminada Documentación (habilitada de forma predeterminada)
Generación de un bloqueo de prueba CrashManager.GenerateTestCrash (Solo iOS) Crashes.GenerateTestCrash
Adjuntar metadatos adicionales Documentación (se puede adjuntar desde el agente de escucha)
Cuadro de diálogo Personalizar usuario Documentación (no proporcionada de forma predeterminada)
Obtener información sobre el estado de envío Solo Android Documentación
Información sobre un bloqueo anterior CrashManager.GetLastCrashDetails (Android) o CrashManager.LastSessionCrashDetails (iOS) Crashes.GetLastSessionCrashReportAsync
Deshabilitación del servicio en tiempo de ejecución SharedHockeyManager.DisableCrashManager (solo iOS) Crashes.SetEnabledAsync

Distribución

Nota

A diferencia de HockeyApp, la característica actualizaciones desde la aplicación de App Center solo funciona con compilaciones RELEASE (de forma predeterminada) que se distribuyen mediante el servicio App Center Distribute . Si la aplicación usa un grupo de distribución privado, una vez instalada y abierta la aplicación por primera vez después de agregar el SDK de Distribución de App Center, se abrirá un explorador para autenticar al usuario y habilitar las actualizaciones desde la aplicación. Este explorador también se abrirá si establece la pista de actualización privada en la aplicación en tiempo de ejecución. Se trata de un paso único que no se producirá para las versiones posteriores de la aplicación. Consulte la documentación de Distribución de App Center para obtener más detalles.

Característica HockeyApp App Center
Actualizaciones restringidas en la aplicación LoginManager.VerifyLogin (Android) o Authenticator.AuthenticateInstallation (iOS) Distribute.UpdateTrack
Deshabilitación del servicio en tiempo de ejecución UpdateManager.Unregister (Android) o SharedHockeyManager.DisableUpdateManager (iOS) Distribute.SetEnabledAsync
Personalización del cuadro de diálogo de actualización Distribute.ReleaseAvailable

Servicio de comentarios

El servicio de comentarios no se admitirá en App Center. Consulte los comentarios de HockeyApp.