Xamarin. Formularios y AppCenter: evento no rastreado en modo de lanzamiento para dispositivos Android

He desarrollado un pequeño Xamarin. Formas. Aplicación Shell: esta aplicación contiene 4 fichas, donde el defecto HomePage contiene algunas informaciones básicas.

Estoy usando AppCenter para rastrear algunos eventos, como pantallas de páginas, clics de los usuarios, APIs llamadas,...

En el App.xaml.cs He especificado 2 casos (Debug/prod) para registrarse AppCenter:

protected override void OnStart()
{
    // AppCenter
#if DEBUG
    AppCenter.Start("ios=xxx;" +
            "android=yyy;",
            typeof(Analytics), typeof(Crashes));
#else
    AppCenter.Start("ios=aaa;" +
            "android=bbb;",
            typeof(Analytics), typeof(Crashes));
#endif
}

Entonces, en el HomePage ViewModelEstoy haciendo esto:

public HomeViewModel()
{
    _eventTracker = new AppCenterEventTracker();
    //...
    _eventTracker.Display("HomePage");
}

Que se refiere a:

public virtual void Display(string page, ICollection> optionalParams = null)
{
    var mainParams = new List>
    {
        new KeyValuePair(EventProperty.Page, page),
    };
    Analytics.TrackEvent(EventType.Display, BuildParameters(mainParams, optionalParams));
}

En el NewsPage ViewModel que se muestra a través de otra pestaña, el código es:

public NewsViewModel()
{
    _eventTracker = new AppCenterEventTracker();
    //...
    _eventTracker.Display("NewsPage");
}

Esto funciona bien en Debug modo para iOS y Android: Puedo recuperar este evento en AppCenter para todas las páginas (las HomePage y otras páginas como NewsPage)

Pero cuando la aplicación se construye Liberación modo o a través AppCenter, no es el caso para el HomePage: Sólo recuperé este evento para iOS, pero no para Android. Para las otras páginas como NewsPage, no encuentro ningún problema: la pantalla está bien tenida en cuenta...

Así que creo que el problema está relacionado con la pestaña que se muestra por defecto en mi aplicación: la HomePage.

¿Tendrías una explicación?

Editar:

Gracias a @Dmitriy Kirakosyan, hice algunas pruebas nuevas: Lo he visto en Debug El modo también. el evento de la pantalla HomePage ya no está rastreado. In AppCenter Puedo ver rastros que datan hace mucho tiempo, pero no durante las últimas semanas.

Esto podría estar relacionado con las actualizaciones de paquetes (Xamarin. Formularios, AppCenter, ...) porque no he cambiado la inicialización de AppCenter o el seguimiento de eventos...

Lo extraño es que pueda ver Debug modo que AppCenter.Start() está bien llamado antes HomePage monitorización.

Pero cuando comprobé los valores de AppCenter.Configured o Analytics.IsEnabledAsync() justo antes de este rastreo, hay ambos False:

var test1 = AppCenter.Configured;
var test2 = Analytics.IsEnabledAsync().Result;
_eventTracker.Display(EventPage.HomePage);

Pregunta hecha hace 3 años, 4 meses, 29 días - Por compilercaptain7dab


2 Respuestas:

  • Parece que el problema puede estar relacionado con la configuración de AppCenter y el rastreo de eventos en la página de inicio (HomePage) en modo de lanzamiento. Aquí hay algunas sugerencias para resolver este problema:

    • Verificar la configuración de AppCenter: Asegúrate de que la configuración de AppCenter para Android está correctamente configurada en el modo de lanzamiento. Puede que necesites revisar las claves y valores proporcionados en el método `AppCenter.Start`.
    • Verificar la inicialización de AppCenter: Asegúrate de que la inicialización de AppCenter se realiza correctamente antes de rastrear eventos en la página de inicio. Puedes colocar un punto de interrupción en el método `OnStart` en el archivo `App.xaml.cs` y verificar si la inicialización de AppCenter se realiza adecuadamente en el modo de lanzamiento.
    • Verificar el estado de AppCenter: Puedes usar las propiedades `AppCenter.Configured` y `Analytics.IsEnabledAsync()` para verificar si AppCenter está correctamente configurado y habilitado antes de rastrear eventos en la página de inicio. Asegúrate de que ambos valores sean `True` antes de llamar al método `_eventTracker.Display(EventPage.HomePage)`.
    • Verificar las actualizaciones de paquetes: Como mencionaste que realizaste actualizaciones de paquetes recientemente, asegúrate de que todas las dependencias como Xamarin.Forms y AppCenter están actualizadas a las versiones compatibles entre sí y con tu proyecto.
    • Realizar pruebas exhaustivas: Realiza pruebas en diferentes dispositivos Android en modo de lanzamiento para identificar si el problema es específico de un dispositivo o si ocurre de manera consistente en todos los dispositivos.

    Si después de seguir estos pasos aún no puedes rastrear eventos en la página de inicio en modo de lanzamiento para dispositivos Android, te recomendaría revisar detenidamente el flujo de inicialización y rastreo de eventos en tu código para identificar cualquier posible error o problema de lógica.

    Respondida el Dec 18, 2020 a las 14:56 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Posibles causas del problema:

    Inicialización retrasada de AppCenter: La inicialización de AppCenter puede retrasarse cuando la aplicación se inicia en modo de lanzamiento. Esto puede evitar que el evento de pantalla inicial se registre.

    Configuración incorrecta de depuración/lanzamiento: Es posible que la configuración de AppCenter para el modo de lanzamiento se haya establecido incorrectamente, lo que impide el seguimiento de eventos.

    Problemas de permisos: La aplicación puede requerir permisos específicos para acceder a los servicios de AppCenter en modo de lanzamiento.

    Pasos para solucionar problemas:

    • Verifica la configuración de AppCenter: Asegúrate de que las claves de API de AppCenter estén configuradas correctamente para el modo de lanzamiento. También verifica si hay diferencias en la configuración entre el modo de depuración y el de lanzamiento.
    • Fuerza la inicialización temprana de AppCenter: Intenta inicializar AppCenter lo antes posible en el ciclo de vida de la aplicación, incluso antes de mostrar cualquier pantalla. Esto puede garantizar que AppCenter esté configurado y listo para registrar eventos.
    • Comprueba los permisos: Asegúrate de que la aplicación tenga los permisos necesarios, como el acceso a Internet, para comunicarse con los servicios de AppCenter.
    • Habilita el registro: Habilita el registro de AppCenter para depurar cualquier problema de inicialización o seguimiento de eventos. Consulta la documentación de AppCenter para obtener instrucciones sobre cómo habilitar el registro.
    • Prueba en un dispositivo real: Intenta probar la aplicación en un dispositivo real en lugar de un emulador. Los dispositivos reales pueden proporcionar un entorno más estable para depurar problemas de seguimiento de eventos.
    • Actualiza las dependencias: Intenta actualizar todas las dependencias, incluidos Xamarin.Forms y AppCenter SDK, a sus últimas versiones. Esto puede resolver cualquier problema de compatibilidad o errores que puedan causar problemas de seguimiento de eventos.

    Recomendaciones adicionales:

    Utiliza un rastreador de eventos personalizado para registrar eventos en lugar de depender de AppCenterAnalytics. Esto te brinda más control sobre el proceso de seguimiento y permite depurar problemas más fácilmente.

    • Utiliza un servicio de terceros para validar la exactitud y consistencia de los datos del evento. Esto puede ayudar a identificar cualquier problema con la configuración o integración de AppCenter.

    Respondida el Dec 18, 2020 a las 15:01 - por Gemini

    Votos positivos: 0 | Votos negativos: 0