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
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();
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 delOnCreate()
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 laApplication.OnCreate
devolución de llamada en su lugar.Xamarin.iOS:
Abra el archivo del
AppDelegate.cs
proyecto y agregue laStart()
llamada dentro delFinishedLaunching()
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 elAppCenter.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 elOnStart()
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.
- 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
[Solo para distribuir iOS] Modificar el archivo Info.plist del proyecto
- Agregue una nueva clave para
URL types
oCFBundleURLTypes
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
oCFBundleURLSchemes
. - 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.
- Agregue una nueva clave para
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 | Sí | Documentación (se puede adjuntar desde el agente de escucha) |
Cuadro de diálogo Personalizar usuario | Sí | 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 | Sí | Distribute.ReleaseAvailable |
Servicio de comentarios
El servicio de comentarios no se admitirá en App Center. Consulte los comentarios de HockeyApp.