Introducción a MAUI y Xamarin

Importante

Visual Studio App Center está programado para retirarse 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 y las alternativas de soporte técnico.

El SDK de App Center usa una arquitectura modular para que pueda usar cualquiera o todos los servicios.

Empecemos a configurar el SDK de .NET de App Center en la aplicación para usar App Center Analytics y App Center Crashes. Para agregar App Center Distribute a la aplicación, consulte la documentación de App Center Distribute.

1. Prerrequisitos

Asegúrese de que se cumplen los siguientes requisitos previos antes de empezar:

  • El proyecto está configurado en Visual Studio o Visual Studio para Mac.
  • El destino es dispositivos que ejecutan iOS 11.0 o posterior o Android 5.0 (nivel de API 21) o posterior.
  • No usa ningún otro SDK que proporcione la funcionalidad de informes de bloqueos.

Plataformas compatibles:

  • MAUI iOS
  • MAUI Android
  • MAUI Windows
  • .NET 6.0 macOS
  • Xamarin.Android
  • Xamarin.iOS
  • Xamarin.Mac
  • Xamarin.Forms (aplicaciones iOS, macOS Android, UWP y Escritorio de Windows)

1.1 MAUI

Nota

Actualmente no hay ninguna plataforma MAUI en el portal de App Center. Use Xamarin para iOS y Android y UWP para Windows.

1.2 Acerca de Xamarin.Android

Cree una aplicación en el portal de App Center con Android como sistema operativo y Xamarin como plataforma.

1.3 Acerca de Xamarin.iOS

Cree una aplicación en el portal de App Center con iOS como sistema operativo y Xamarin como plataforma.

1.4 Acerca de Xamarin.Mac

Cree una aplicación en el portal de App Center con macOS como sistema operativo y Xamarin como plataforma.

Advertencia

Hay un problema conocido que impide que una aplicación se cargue en el App Store. Siga el progreso en github.

1.5 Acerca de Xamarin.Forms (iOS, macOS, Android, UWP y Escritorio de Windows)

Cree 5 aplicaciones en App Center: una para cada sistema operativo.

Debe seleccionar Xamarin como plataforma para aplicaciones Android, iOS y macOS (las aplicaciones para UWP y escritorio no tienen una opción de Xamarin).

Para las aplicaciones de escritorio de Windows y macOS , debe configurar el proyecto para que sea compatible con la plataforma de Xamarin.Forms .

2. Creación de la aplicación en el portal de App Center para obtener el secreto de la aplicación

Si ya ha creado la aplicación en el portal de App Center, puede omitir este paso.

  1. Ve a appcenter.ms.
  2. Regístrese o inicie sesión y presione el botón azul en la esquina superior derecha del portal que dice Agregar nuevo y seleccione Agregar nueva aplicación en el menú desplegable.
  3. Escriba un nombre y una descripción opcional para la aplicación.
  4. Seleccione el sistema operativo y la plataforma adecuados según el proyecto, tal y como se ha descrito anteriormente.
  5. Presione el botón situado en la parte inferior derecha que indica Agregar nueva aplicación.

Una vez que haya creado una aplicación, puede obtener su secreto de aplicación en la página Configuración del portal de App Center. En la esquina superior derecha de la página Configuración , haga clic en los puntos verticales triples y seleccione Copy app secret para obtener el secreto de la aplicación.

3. Adición del SDK de App Center a la solución

El SDK de App Center se puede integrar mediante Visual Studio o la consola del Administrador de paquetes.

Nota

El SDK de App Center usa ensamblados con nombre seguro para la compatibilidad con aplicaciones que usan un signo con nombre seguro.

Visual Studio para Mac

  • Abra Visual Studio.
  • 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....
  • Busque App Center y seleccione Análisis de App Center y Bloqueos de App Center.
  • Haga clic en Agregar paquetes.

Visual Studio para Windows

  • Abra Visual Studio.
  • 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.
  • Busque App Center e instale los paquetes Microsoft.AppCenter.Analytics y Microsoft.AppCenter.Crashes .

Consola del Administrador de paquetes

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

Ahora que ha integrado el SDK en la aplicación, es el momento de iniciar el SDK y usar los servicios de App Center.

Nota

Si usa el SDK de App Center en un proyecto portátil (por ejemplo , Xamarin.Forms), debe instalar los paquetes en cada uno de los proyectos: los portátiles, Android e iOS. Para ello, debe abrir cada subproyecto y seguir los pasos correspondientes descritos en las secciones Visual Studio para Mac o Visual Studio para Windows.

4. Iniciar el SDK

Para usar App Center, debe participar en los módulos que desea usar. De forma predeterminada, no se inicia ningún módulo y debe llamar explícitamente a cada uno de ellos al iniciar el SDK.

4.1 Adición de las instrucciones using

Agregue los espacios de nombres adecuados en los archivos siguientes:

  • MAUI y Xamarin.Forms - App.xaml.cs
  • Xamarin.iOS y Xamarin.Mac - AppDelegate.cs
  • Xamarin.Android - MainActivity.cs
using Microsoft.AppCenter;
using Microsoft.AppCenter.Analytics;
using Microsoft.AppCenter.Crashes;

4.2 Agregar el Start() método

4.2.1 MAUI y Xamarin.Forms

Debe crear diferentes aplicaciones para cada plataforma en el portal de App Center. Para cada aplicación tendrá un secreto de aplicación diferente. Abra el archivo App.xaml.cs del proyecto y agregue la siguiente línea en el constructor (o en el OnStart() método para Xamarin.Forms).

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

Si necesita iniciar los servicios de App Center por separado, debe hacer lo siguiente:

  1. Configure o inícielo con el secreto de aplicación.
  2. Si se puede llamar al código varias veces, compruebe si app Center ya está configurado.
  3. Inicie los servicios necesarios sin el secreto de la aplicación.
AppCenter.Configure("ios={Your App Secret};macos={Your App Secret};android={Your App Secret};uwp={Your App Secret};windowsdesktop={Your App Secret}");
if (AppCenter.Configured)
{
    AppCenter.Start(typeof(Analytics));
    AppCenter.Start(typeof(Crashes));
}

4.2.2 Xamarin.Android

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.

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));

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 su lugar en la Application.OnCreate devolución de llamada.

4.2.3 Xamarin.iOS y Xamarin.Mac

Nota

No es posible tener más de un SDK de informes de bloqueo 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.

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));

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 bloqueos se inicializa puede desencadenar un bloqueo nativo e ignorar la cláusula catch. Una vez que el AppCenter.Start método vuelve, es seguro volver a intentar o detectar excepciones de referencia nulas. Puede leer más sobre la causa de este problema de tiempo en el artículo Señales y periodistas de bloqueos de terceros .

Advertencia

No se recomienda insertar el secreto de aplicación en el código fuente.

Importante

Las llaves muestran dónde colocar los secretos de aplicación reales, no coloque llaves en la Start llamada.

Nota

En el caso de una aplicación iOS, no es posible tener más de un SDK de informes de bloqueo 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.

4.3 Reemplace el marcador de posición por el secreto de la aplicación

Asegúrese de reemplazar {Your App Secret} texto por el valor real de la aplicación. El secreto de aplicación se puede encontrar en la página Introducción o en la página Configuración del portal de App Center.

La página Introducción contiene el ejemplo de código anterior con el secreto de aplicación en ella, puede copiar y pegar todo el ejemplo.

En el ejemplo anterior se muestra cómo usar el Start() método e incluir app Center Analytics y Bloqueos de App Center.

Si no desea usar uno de los dos servicios, quite el parámetro correspondiente de la llamada al método anterior.

A menos que especifique explícitamente cada módulo como parámetros en el método start, no puede usar ese servicio de App Center. Además, la Start() API solo se puede usar una vez en el ciclo de vida de la aplicación; todas las demás llamadas registrarán una advertencia en la consola y solo estarán disponibles los módulos incluidos en la primera llamada.

Por ejemplo: si desea incorporar a App Center Analytics, debe modificar la llamada de la Start() siguiente manera:

4.3.1 MAUI y Xamarin.Forms

AppCenter.Start("ios={Your App Secret};macos={Your App Secret};android={Your App Secret};uwp={Your App Secret};windowsdesktop={Your App Secret}", typeof(Analytics));

4.3.2 Xamarin Native

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

Genial, todo está configurado para visualizar los datos de Análisis y Bloqueos en el portal que el SDK recopila automáticamente.

Consulte la documentación de App Center Analytics y App Center Crashes para obtener información sobre cómo personalizar y usar funcionalidades más avanzadas de ambos servicios.

Para obtener información sobre cómo empezar a trabajar con las actualizaciones desde la aplicación, lea la documentación de App Center Distribute.

Nota

Con las API portátiles de Xamarin Forms, verás las API de todos los módulos, pero no todas esas API son compatibles con las plataformas para UWP y Escritorio de Windows y no hacen nada cuando se ejecutan en las aplicaciones para UWP y Escritorio de Windows . En concreto, UWP y Escritorio de Windows no admiten el módulo siguiente: Distribuir. Cualquier método con un tipo de valor devuelto devolvería null (para objetos), 0 (para números) o false (para booleanos) en la aplicación para UWP y escritorio de Windows.

5. Reglas de copia de seguridad (solo Android)

Nota

Las aplicaciones destinadas a Android 6.0 (nivel de API 23) o superior tienen habilitada automáticamente la copia de seguridad automática. 

Nota

Si ya tiene un archivo personalizado con reglas de copia de seguridad, cambie al tercer paso.

Si usa la copia de seguridad automática para evitar obtener información incorrecta sobre los dispositivos, siga los pasos siguientes:

5.1. Para Android 11 (nivel de API 30) o inferior.

  1. Cree appcenter_backup_rule.xml archivo en la carpeta Resources/xml .
  1. Abra el archivo AndroidManifest.xml del proyecto. Agregue el android:fullBackupContent atributo al <application> elemento . Debe apuntar al archivo de recursosappcenter_backup_rule.xml .
android:fullBackupContent="@xml/appcenter_backup_rule"
  1. Agregue las siguientes reglas de copia de seguridad al archivo appcenter_backup_rule.xml :
<full-backup-content xmlns:tools="http://schemas.android.com/tools">
      <exclude domain="sharedpref" path="AppCenter.xml"/>
      <exclude domain="database" path="com.microsoft.appcenter.persistence"/>
      <exclude domain="database" path="com.microsoft.appcenter.persistence-journal"/>
      <exclude domain="file" path="error" tools:ignore="FullBackupContent"/>
      <exclude domain="file" path="appcenter" tools:ignore="FullBackupContent"/>
  </full-backup-content>

5.2. Para Android 12 (nivel de API 31) o superior.

  1. Cree appcenter_backup_rule.xml archivo en la carpeta Resources/xml .
  1. Abra el archivo AndroidManifest.xml del proyecto. Agregue el android:dataExtractionRules atributo al <application> elemento . Debe apuntar al archivo de recursosappcenter_backup_rule.xml .
android:dataExtractionRules="@xml/appcenter_backup_rule"
  1. Agregue las siguientes reglas de copia de seguridad al archivo appcenter_backup_rule.xml :
<data-extraction-rules xmlns:tools="http://schemas.android.com/tools">
    <cloud-backup>
        <exclude domain="sharedpref" path="AppCenter.xml"/>
        <exclude domain="database" path="com.microsoft.appcenter.persistence"/>
        <exclude domain="database" path="com.microsoft.appcenter.persistence-journal"/>
        <exclude domain="file" path="error" tools:ignore="FullBackupContent"/>
        <exclude domain="file" path="appcenter" tools:ignore="FullBackupContent"/>
    </cloud-backup>
    <device-transfer>
        <exclude domain="sharedpref" path="AppCenter.xml"/>
        <exclude domain="database" path="com.microsoft.appcenter.persistence"/>
        <exclude domain="database" path="com.microsoft.appcenter.persistence-journal"/>
        <exclude domain="file" path="error" tools:ignore="FullBackupContent"/>
        <exclude domain="file" path="appcenter" tools:ignore="FullBackupContent"/>
    </device-transfer>
</data-extraction-rules>