Condividi tramite


Introduzione a MAUI e Xamarin

Importante

Visual Studio App Center è pianificato per il ritiro il 31 marzo 2025. Anche se è possibile continuare a usare Visual Studio App Center fino a quando non viene completamente ritirato, esistono diverse alternative consigliate a cui è possibile prendere in considerazione la migrazione.

Altre informazioni sulle sequenze temporali di supporto e sulle alternative.

App Center SDK usa un'architettura modulare per poter usare qualsiasi o tutti i servizi.

Per iniziare a configurare App Center .NET SDK nell'app, è possibile iniziare a usare App Center Analytics e Gli arresti anomali di App Center. Per aggiungere App Center Distribute all'app, vedere la documentazione relativa a App Center Distribute.

1. Prerequisiti

Prima di iniziare, verificare che i prerequisiti seguenti siano soddisfatti:

  • Il progetto è configurato in Visual Studio o in Visual Studio per Mac.
  • Per i dispositivi che eseguono iOS 11.0 o versione successiva o Android 5.0 (livello API 21) o versione successiva.
  • Non si usano altri SDK che forniscono funzionalità di creazione di report di arresto anomalo del sistema.

Piattaforme supportate:

  • MAUI iOS
  • MAUI Android
  • MAUI Windows
  • .NET 6.0 macOS
  • Xamarin.Android
  • Xamarin.iOS
  • Xamarin.Mac
  • Xamarin.Forms (applicazioni iOS, macOS Android, UWP e Windows Desktop)

1.1 MAUI

Nota

Attualmente non è disponibile alcuna piattaforma MAUI nel portale di App Center. Usare Xamarin per iOS e Android e UWP per Windows.

1.2 Informazioni su Xamarin.Android

Creare un'app nel portale di App Center con Android come sistema operativo e Xamarin come piattaforma.

1.3 Informazioni su Xamarin.iOS

Creare un'app nel portale di App Center con iOS come sistema operativo e Xamarin come piattaforma.

1.4 Informazioni su Xamarin.Mac

Creare un'app nel portale di App Center con macOS come sistema operativo e Xamarin come piattaforma.

Avviso

Esiste un problema noto che impedisce il caricamento di un'app nel App Store. Seguire lo stato di avanzamento su github.

1.5 Informazioni su Xamarin.Forms (iOS, macOS, Android, UWP e Windows Desktop)

Creare 5 app in App Center, una per ogni sistema operativo.

È necessario selezionare Xamarin come piattaforma per le applicazioni Android, iOS e macOS (le applicazioni UWP e Desktop non hanno un'opzione Xamarin).

Per le applicazioni Desktop e macOS di Windows è necessario configurare il progetto per la compatibilità con la piattaforma Xamarin.Forms.

2. Creare l'app nel portale di App Center per ottenere il segreto dell'app

Se l'app è già stata creata nel portale di App Center, è possibile ignorare questo passaggio.

  1. Vai a appcenter.ms.
  2. Iscriversi o accedere e premere il pulsante blu nell'angolo superiore destro del portale che indica Aggiungi nuovo e selezionare Aggiungi nuova app dal menu a discesa.
  3. Immettere un nome e una descrizione facoltativa per l'app.
  4. Selezionare il sistema operativo e la piattaforma appropriati a seconda del progetto, come descritto in precedenza.
  5. Premere il pulsante in basso a destra che indica Aggiungi nuova app.

Dopo aver creato un'app, è possibile ottenere il segreto dell'app nella pagina Impostazioni del portale di App Center. Nell'angolo superiore destro della pagina Impostazioni fare clic sui tre punti verticali e selezionare Copy app secret per ottenere il segreto dell'app.

3. Aggiungere App Center SDK alla soluzione

App Center SDK può essere integrato tramite Visual Studio o la console di Gestione pacchetti.

Nota

App Center SDK usa assembly con nome sicuro per la compatibilità con le applicazioni che usano il segno con nome sicuro.

Visual Studio per Mac

  • Aprire Visual Studio.
  • Fare clic su Apri file> e scegliere la soluzione.
  • Nello strumento di spostamento della soluzione fare clic con il pulsante destro del mouse sulla sezione Pacchetti e scegliere Aggiungi pacchetti NuGet.
  • Cercare App Center e selezionare App Center Analytics and App Center Crashes (Arresti anomali di App Center e App Center).
  • Fare clic su Aggiungi pacchetti.

Visual Studio per Windows

  • Aprire Visual Studio.
  • Fare clic su Apri file> e scegliere la soluzione.
  • Nello strumento di spostamento della soluzione fare clic con il pulsante destro del mouse su Riferimenti e scegliere Gestisci pacchetti NuGet.
  • Cercare App Center e installare i pacchetti Microsoft.AppCenter.Analytics e Microsoft.AppCenter.Crashes .

Console di Gestione pacchetti

  • Aprire la console in Visual Studio. A tale scopo, scegliere Strumenti> console diGestione>pacchetti NuGet.
  • Se si lavora in Visual Studio per Mac, assicurarsi di aver installato le estensioni di gestione pacchetti NuGet. A questo scopo, scegliereEstensioni di Visual Studio>, cercare NuGet e installare, se necessario.
  • Digitare il comando seguente nella console:
Install-Package Microsoft.AppCenter.Analytics
Install-Package Microsoft.AppCenter.Crashes

Dopo aver integrato l'SDK nell'applicazione, è possibile avviare l'SDK e usare i servizi di App Center.

Nota

Se si usa App Center SDK in un progetto portatile (ad esempio Xamarin.Forms), è necessario installare i pacchetti in ognuno dei progetti: quelli portatili, Android e iOS. A tale scopo, è necessario aprire ogni sottoprogetto e seguire i passaggi corrispondenti descritti nelle sezioni Visual Studio per Mac o Visual Studio per Windows.

4. Avviare l'SDK

Per usare App Center, è necessario acconsentire esplicitamente ai moduli da usare. Per impostazione predefinita, non vengono avviati moduli ed è necessario chiamarli in modo esplicito all'avvio dell'SDK.

4.1 Aggiungere le istruzioni using

Aggiungere gli spazi dei nomi appropriati nei file seguenti:

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

4.2 Aggiungere il Start() metodo

4.2.1 MAUI e Xamarin.Forms

È necessario creare applicazioni diverse per ogni piattaforma nel portale di App Center. Per ogni app si avrà un segreto dell'app diverso. Aprire il file di App.xaml.cs del progetto e aggiungere la riga seguente nel costruttore (o nel OnStart() metodo per 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));

Se è necessario avviare separatamente i servizi di App Center, è necessario:

  1. Configurarlo o avviarlo con il segreto dell'app.
  2. Se il codice può essere chiamato più volte, controllare se App Center è già configurato.
  3. Avviare i servizi necessari senza il segreto dell'app.
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

Se si usa HockeyApp SDK per Android, assicurarsi di inizializzare HockeyApp SDK DOPO App SDK.

Aprire il file di MainActivity.cs del progetto e aggiungere la Start() chiamata all'interno del OnCreate() metodo

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

Nota

Se l'applicazione ha servizi in background o più punti di ingresso, ad esempio un ricevitore broadcast, attività esportate o provider di contenuti, è consigliabile iniziare AppCenter nel Application.OnCreate callback.

4.2.3 Xamarin.iOS e Xamarin.Mac

Nota

Non è possibile avere più di un SDK per la segnalazione di arresti anomali attivi nell'app. Disabilitare la funzionalità di segnalazione degli arresti anomali degli altri SDK per assicurarsi che App Center possa rilevare gli arresti anomali.

Aprire il file del AppDelegate.cs progetto e aggiungere la Start() chiamata all'interno del FinishedLaunching() metodo

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

Nota

Se si usano arresti anomali, è necessario chiamare questo metodo nell'interfaccia utente/thread principale ed evitare di avviare attività in background fino a quando il Start metodo non viene restituito. Il motivo è che qualsiasi eccezione di riferimento Null intercettata da un altro thread mentre arresti anomali sta inizializzando può attivare un arresto anomalo nativo e ignorare la clausola catch. Una volta restituito il AppCenter.Start metodo, è possibile provare/intercettare nuovamente le eccezioni di riferimento Null. Per altre informazioni sulla causa di questo problema di temporizzazione, vedere l'articolo Segnali e giornalisti di arresto anomalo di terze parti .

Avviso

Non è consigliabile incorporare il segreto dell'app nel codice sorgente.

Importante

Le parentesi graffe mostrano dove inserire i segreti dell'app effettivi, non inserire parentesi graffe nella Start chiamata.

Nota

Per un'applicazione iOS, non è possibile avere più di un SDK attivo per la creazione di report sugli arresti anomali nell'app. Disabilitare la funzionalità di segnalazione degli arresti anomali degli altri SDK per assicurarsi che App Center possa rilevare gli arresti anomali.

4.3 Sostituire il segnaposto con il segreto dell'app

Assicurarsi di sostituire {Your App Secret} il testo con il valore effettivo per l'applicazione. Il segreto dell'app è disponibile nella pagina Introduzione o nella pagina Impostazioni del portale di App Center.

La pagina Introduzione contiene l'esempio di codice precedente con il segreto dell'app, è possibile copiare l'intero esempio.

L'esempio precedente illustra come usare il Start() metodo e includere sia App Center Analytics che App Center Crashes.

Se non si vuole usare uno dei due servizi, rimuovere il parametro corrispondente dalla chiamata al metodo precedente.

A meno che non si specifichi in modo esplicito ogni modulo come parametri nel metodo start, non è possibile usare tale servizio App Center. Inoltre, l'API Start() può essere usata una sola volta nel ciclo di vita dell'app. Tutte le altre chiamate segnaleranno un avviso alla console e saranno disponibili solo i moduli inclusi nella prima chiamata.

Ad esempio, se si vuole eseguire l'onboarding in App Center Analytics, è necessario modificare la Start() chiamata come indicato di seguito:

4.3.1 MAUI e 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));

Si è tutti impostati per visualizzare i dati di Analisi e arresti anomali nel portale raccolti automaticamente dall'SDK.

Per informazioni su come personalizzare e usare funzionalità più avanzate di entrambi i servizi, vedere la documentazione relativa ad App Center Analytics e App Center Crashes .

Per informazioni su come iniziare a usare gli aggiornamenti in-app, leggere la documentazione di App Center Distribute.

Nota

Usando le API portabili di Xamarin Forms, verranno visualizzate le API di tutti i moduli, ma non tutte le API sono supportate nelle piattaforme UWP e Desktop di Windows e non vengono eseguite alcuna operazione durante l'esecuzione nelle applicazioni UWP e Windows Desktop . In particolare la piattaforma UWP e Windows Desktop non supporta il modulo seguente: Distribuisci. Qualsiasi metodo con un tipo restituito restituirà null (per gli oggetti), 0 (per i numeri) o false (per i valori booleani) nell'applicazione UWP e Windows Desktop.

5. Regole di backup (solo Android)

Nota

Le app destinate ad Android 6.0 (livello API 23) o versioni successive hanno l'abilitazione automatica del backup automatico. 

Nota

Se si dispone già di un file personalizzato con regole di backup, passare al terzo passaggio.

Se si usa il backup automatico per evitare di ottenere informazioni errate sui dispositivi, seguire questa procedura:

5.1. Per Android 11 (livello API 30) o inferiore.

  1. Creare appcenter_backup_rule.xml file nella cartella Resources/xml .
  1. Aprire il file diAndroidManifest.xml del progetto. Aggiungere l'attributo android:fullBackupContent all'elemento <application> . Deve puntare al file di risorse appcenter_backup_rule.xml .
android:fullBackupContent="@xml/appcenter_backup_rule"
  1. Aggiungere le regole di backup seguenti al file 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. Per Android 12 (livello API 31) o versione successiva.

  1. Creare appcenter_backup_rule.xml file nella cartella Resources/xml .
  1. Aprire il file diAndroidManifest.xml del progetto. Aggiungere l'attributo android:dataExtractionRules all'elemento <application> . Deve puntare al file di risorse appcenter_backup_rule.xml .
android:dataExtractionRules="@xml/appcenter_backup_rule"
  1. Aggiungere le regole di backup seguenti al file 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>