Solución de problemas del SDK de MAUI y Xamarin
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.
Recopilación de registros detallados
Para obtener instrucciones sobre cómo ajustar el nivel de registro a VERBOSE
, consulte la sección Otras API .
Puede encontrar los registros detallados en la ventana Depurar>salida deWindows>.
Problemas durante la instalación
- Para una aplicación de Xamarin.Forms, asegúrese de que los paquetes están instalados en todos los proyectos que hacen referencia a las bibliotecas. De lo contrario, verá errores.
- Si ve este error al compilar para Xamarin.iOS:
MTOUCH: Error MT3001: Could not AOT the assembly 'obj/**/Build/Microsoft.AppCenter.**.iOS.Bindings.dll' (MT3001)
debe actualizar el componente de Xamarin.iOS a la versión 10.4.0.128 o posterior. - Si ve este error al compilar para Xamarin.iOS:
MTOUCH: Error MT5210: Native linking failed, undefined symbol: _OBJC_METACLASS_$_MS{SomeSdkClassName}. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in. (MT5210)
o un error similar (MT5211
código con un mensaje similar que menciona App Center), asegúrese de llamarAppCenter.Start
antes de usar las API de un servicio específico. Si llama aStart
pero tiene este problema, debe actualizar el componente de Xamarin.iOS a la versión 10.4.0.128 o más reciente. - En la consola, busque un registro Assert con el mensaje "Sdk de App Center configurado correctamente". Esto comprueba que el SDK está configurado correctamente.
Los datos de análisis no se muestran en el portal
Asegúrese de que ha integrado correctamente los módulos del SDK.
Asegúrese de que el secreto de aplicación correcto se incluye junto con la llamada al
Start()
método. Para copiar el código exactoStart()
, abra la aplicación en el portal y vaya a Introducción página.Si desea ver los registros que se envían al back-end, cambie el nivel de registro a Detallado en la aplicación y el SDK imprimirá los registros en la consola. Llame a la API siguiente antes de iniciar el SDK.
AppCenter.LogLevel = LogLevel.Verbose;
Compruebe los registros como "Sdk de App Center configurado correctamente" (en El nivel de registro de información), compruebe si ve registros de solicitudes HTTPS.
Asegúrese de que el dispositivo está en línea.
En ocasiones, los registros pueden tardar unos minutos en aparecer en el portal. Espere un tiempo si ese es el caso.
Para comprobar si el back-end de App Center recibió los datos, vaya a la sección Flujo de registro del servicio Analytics. Los eventos deben aparecer una vez enviados.
Los bloqueos no se muestran en el portal
Asegúrese de que ha integrado correctamente los módulos del SDK.
Asegúrese de que el secreto de aplicación correcto se incluye junto con la llamada al
Start()
método. Para copiar el código exactoStart()
, abra la aplicación en el portal y vaya a Introducción página.Reinicie la aplicación después de un bloqueo. Los bloqueos de App Center reenviarán el registro de bloqueos solo después de reiniciarse. Además, en Xamarin.iOS y Xamarin.Mac, el SDK no guardará ningún registro de bloqueos si ha asociado un depurador. Asegúrese de que el depurador no está asociado al bloquear la aplicación de iOS. En Xamarin.Android, puede bloquearse al tener asociado el depurador, pero debe continuar la ejecución después de dividirse en la excepción no controlada.
Si desea ver los registros que se envían al back-end, cambie el nivel de registro a Detallado en la aplicación y el SDK imprimirá los registros en la consola. Llame a la API siguiente antes de iniciar el SDK.
AppCenter.LogLevel = LogLevel.Verbose;
Compruebe los registros como "Sdk de App Center configurado correctamente" (en El nivel de registro de información), compruebe si ve registros de solicitudes HTTPS.
No use ninguna otra biblioteca que proporcione funcionalidad de informes de bloqueos, como Xamarin Insights o HockeyApp. Solo puede tener un SDK de informes de bloqueo integrado.
Asegúrese de que el dispositivo está en línea.
En ocasiones, los registros pueden tardar unos minutos en aparecer en el portal. Espere un tiempo si ese es el caso.
Si quiere comprobar si el SDK detectó el bloqueo en el siguiente inicio de la aplicación, puede llamar a la API para comprobar si la aplicación se bloqueó en la última sesión y muestra una alerta. O bien, puede ampliar la devolución de llamada de bloqueo para ver si se envió correctamente al servidor.
Para comprobar si el back-end de App Center recibió el bloqueo, vaya a la sección Flujo de registro del servicio Analytics. Los bloqueos deben aparecer allí, una vez enviados.
Distribuir y actualizaciones dentro de la aplicación bloquean mis pruebas automatizadas de IU
Si está ejecutando pruebas automatizadas de IU, las actualizaciones habilitadas en la aplicación bloquearán las pruebas automatizadas de IU, ya que intentarán autenticarse en el back-end de App Center. Se recomienda no habilitar App Center Distribute para las pruebas de interfaz de usuario.
Google Play rechaza la aplicación después de agregar DistributePlay
Google Play rechaza las aplicaciones que usan el Distribute
módulo porque contiene la implementación de actualizaciones desde la aplicación. Para evitar esta situación, el SDK de App Center tiene DistributePlay
módulo, que contiene códigos auxiliares para el módulo principal. Reemplaza el ensamblado principal por ensamblado auxiliar, que imita la Distribute
API. No se requieren cambios adicionales en la aplicación cliente. no DistributePlay
tiene ningún código relacionado con la actualización en la aplicación.
Si después de reemplazar Distribute
el módulo por DistributePlay
la aplicación todavía se rechaza, siga los pasos siguientes para comprobar que el Distribute
módulo se ha reemplazado correctamente:
- Asegúrese de reemplazar
Distribute
DistributePlay
por en todas las versiones de todos los grupos de publicación en Google Play Console. - Si usa
Xamarin.Forms
, asegúrese de agregar elDistributePlay
módulo tanto a proyectos compartidosXamarin.Android
como a proyectos. - Compruebe que el archivo de salida no contiene el
Microsoft.AppCenter.Distribute.Android.Bindings.dll
ensamblado. Puede usar el analizador de APK para comprobarlo.
Mensajes en la consola que indican que no se pudo abrir la base de datos en iOS
App Center usa SQLite para conservar los registros antes de enviarlos al back-end. Si va a agrupar la aplicación con su propia biblioteca de SQLite en lugar de usar la proporcionada por el sistema operativo, es posible que vea errores como este en la consola [AppCenter] ERROR: -[MSACDBStorage executeSelectionQuery:]/147 Failed to open database
y no verá ninguna información de análisis o bloqueo en el back-end. Actualice el SDK a la versión 0.16.0 o posterior.
Protección del valor del secreto de App Center
app_secret
es un identificador de la aplicación, es necesario saber a qué aplicación se aplica el tráfico y no se puede usar para recuperar o editar datos existentes. app_secret
Si se expone, el mayor riesgo es enviar datos incorrectos a la aplicación, pero no tendrá ningún efecto en la seguridad de los datos.
Para recuperar los datos confidenciales, debe proporcionar un token de aplicación o usuario, que se genera en el lado del cliente. No hay ninguna manera de proteger completamente los datos en el lado del cliente.
Puede mejorar la seguridad de la aplicación mediante una variable de entorno para insertar el secreto de la aplicación en el código. De este modo, el secreto no es visible en el código.