Bien démarrer avec MAUI et Xamarin
Important
La mise hors service de Visual Studio App Center est prévue pour le 31 mars 2025. Bien que vous puissiez continuer à utiliser Visual Studio App Center jusqu’à sa mise hors service complète, il existe plusieurs alternatives recommandées vers lesquelles vous pouvez envisager la migration.
En savoir plus sur les chronologies et les alternatives de support.
Le Kit de développement logiciel (SDK) App Center utilise une architecture modulaire pour vous permettre d’utiliser tout ou partie des services.
Commençons à configurer le Kit de développement logiciel (SDK) .NET App Center dans votre application pour utiliser App Center Analytics et les incidents App Center. Pour ajouter App Center Distribute à votre application, consultez la documentation d’App Center Distribute.
1. Prérequis
Avant de commencer, vérifiez que les conditions préalables suivantes sont remplies :
- Votre projet est configuré dans Visual Studio ou Visual Studio pour Mac.
- Vous ciblez les appareils exécutant iOS 11.0 ou version ultérieure ou Android 5.0 (niveau d’API 21) ou version ultérieure.
- Vous n’utilisez aucun autre KIT de développement logiciel (SDK) qui fournit des fonctionnalités de rapport sur les incidents.
Plateformes prises en charge :
- MAUI iOS
- MAUI Android
- MAUI Windows
- .NET 6.0 macOS
- Xamarin.Android
- Xamarin.iOS
- Xamarin.Mac
- Xamarin.Forms (applications iOS, macOS Android, UWP et Windows Desktop)
1.1 MAUI
Notes
Actuellement, il n’existe aucune plateforme MAUI sur le portail App Center. Utilisez Xamarin pour iOS et Android et UWP pour Windows.
1.2 À propos de Xamarin.Android
Créez une application sur le portail App Center avec Android comme système d’exploitation et Xamarin comme plateforme.
1.3 À propos de Xamarin.iOS
Créez une application sur le portail App Center avec iOS comme système d’exploitation et Xamarin comme plateforme.
1.4 À propos de Xamarin.Mac
Créez une application sur le portail App Center avec macOS comme système d’exploitation et Xamarin comme plateforme.
Avertissement
Il existe un problème connu qui empêche le chargement d’une application sur le App Store. Suivez la progression sur github.
1.5 À propos de Xamarin.Forms (iOS, macOS, Android, UWP et Windows Desktop)
Créez 5 applications dans App Center, une pour chaque système d’exploitation.
Vous devez sélectionner Xamarin comme plateforme pour les applications Android, iOS et macOS (les applications UWP et de bureau n’ont pas d’option Xamarin).
Pour les applications Windows Desktop et macOS , vous devez configurer votre projet pour la compatibilité avec la plateforme Xamarin.Forms .
2. Créez votre application dans le portail App Center pour obtenir le secret de l’application
Si vous avez déjà créé votre application dans le portail App Center, vous pouvez ignorer cette étape.
- Rendez-vous à appcenter.ms.
- Inscrivez-vous ou connectez-vous, puis appuyez sur le bouton bleu dans le coin supérieur droit du portail qui indique Ajouter nouveau , puis sélectionnez Ajouter une nouvelle application dans le menu déroulant.
- Entrez un nom et une description facultative pour votre application.
- Sélectionnez le système d’exploitation et la plateforme appropriés en fonction de votre projet, comme décrit ci-dessus.
- Appuyez sur le bouton en bas à droite qui indique Ajouter une nouvelle application.
Une fois que vous avez créé une application, vous pouvez obtenir son secret d’application dans la page Paramètres du portail App Center. Dans le coin supérieur droit de la page Paramètres , cliquez sur les points verticaux triples et sélectionnez Copy app secret
pour obtenir votre secret d’application.
3. Ajouter le Kit de développement logiciel (SDK) App Center à votre solution
Le Kit de développement logiciel (SDK) App Center peut être intégré à l’aide de Visual Studio ou de la console du Gestionnaire de package.
Notes
Le SDK App Center utilise des assemblys à nom fort pour la compatibilité avec les applications qui utilisent un signe à nom fort.
Visual Studio pour Mac
- Ouvrez Visual Studio.
- Cliquez sur Fichier>Ouvrir et choisissez votre solution.
- Dans le navigateur de solutions, cliquez avec le bouton droit sur la section Packages , puis choisissez Ajouter des packages NuGet....
- Recherchez App Center, puis sélectionnez App Center Analytics et App Center Crashs.
- Cliquez sur Ajouter des packages.
Visual Studio pour Windows
- Ouvrez Visual Studio.
- Cliquez sur Fichier>Ouvrir et choisissez votre solution.
- Dans le navigateur de solution, cliquez avec le bouton droit sur Références et choisissez Gérer les packages NuGet.
- Recherchez App Center et installez les packages Microsoft.AppCenter.Analytics et Microsoft.AppCenter.Crashes .
Console du Gestionnaire de package
- Ouvrez la console dans Visual Studio. Pour ce faire, choisissez Outils Console> dugestionnaire de packageNuGet Package Manager>.
- Si vous travaillez dans Visual Studio pour Mac, vérifiez que vous avez installé les extensions de gestion de package NuGet. Pour cela, choisissezExtensionsVisual Studio>, recherchez NuGet et installez, si nécessaire.
- Tapez la commande suivante dans la console :
Install-Package Microsoft.AppCenter.Analytics
Install-Package Microsoft.AppCenter.Crashes
Maintenant que vous avez intégré le Kit de développement logiciel (SDK) dans votre application, il est temps de le démarrer et d’utiliser les services App Center.
Notes
Si vous utilisez le Kit de développement logiciel (SDK) App Center dans un projet portable (tel que Xamarin.Forms), vous devez installer les packages dans chacun des projets : portable, Android et iOS. Pour ce faire, vous devez ouvrir chaque sous-projet et suivre les étapes correspondantes décrites dans les sections Visual Studio pour Mac ou Visual Studio pour Windows.
4. Démarrer le KIT de développement logiciel (SDK)
Pour utiliser App Center, vous devez accepter le ou les modules que vous souhaitez utiliser. Par défaut, aucun module n’est démarré et vous devez appeler explicitement chacun d’eux lors du démarrage du Kit de développement logiciel (SDK).
4.1 Ajouter les instructions using
Ajoutez les espaces de noms appropriés dans les fichiers suivants :
- MAUI et Xamarin.Forms -
App.xaml.cs
- Xamarin.iOS et Xamarin.Mac -
AppDelegate.cs
- Xamarin.Android -
MainActivity.cs
using Microsoft.AppCenter;
using Microsoft.AppCenter.Analytics;
using Microsoft.AppCenter.Crashes;
4.2 Ajouter la Start()
méthode
4.2.1 MAUI et Xamarin.Forms
Vous devez créer des applications différentes pour chaque plateforme sur le portail App Center. Pour chaque application, vous aurez un secret d’application différent. Ouvrez le fichier App.xaml.cs du projet et ajoutez la ligne suivante dans le constructeur (ou dans la OnStart()
méthode pour 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 vous devez démarrer les services App Center séparément, vous devez :
- Configurez ou démarrez-le avec le secret d’application.
- Si le code peut être appelé plusieurs fois, case activée si app Center est déjà configuré.
- Démarrez le ou les services requis sans le secret d’application.
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
Notes
Si vous utilisez le Kit de développement logiciel (SDK) HockeyApp pour Android, veillez à initialiser le Kit de développement logiciel (SDK) HockeyApp APRÈS le Kit de développement logiciel (SDK) App Center.
Ouvrez le fichier MainActivity.cs du projet et ajoutez l’appel Start()
à l’intérieur de la OnCreate()
méthode
AppCenter.Start("{Your App Secret}", typeof(Analytics), typeof(Crashes));
Notes
Si votre application a des services en arrière-plan ou plusieurs points d’entrée comme un récepteur de diffusion, des activités exportées ou des fournisseurs de contenu, il est recommandé de commencer AppCenter
dans le rappel à la Application.OnCreate
place.
4.2.3 Xamarin.iOS et Xamarin.Mac
Notes
Il n’est pas possible d’avoir plusieurs SDK de rapports d’incidents actifs dans votre application. Désactivez la fonctionnalité de rapport d’incident des autres SDK pour vous assurer qu’App Center peut intercepter les incidents.
Ouvrez le fichier du AppDelegate.cs
projet et ajoutez l’appel à l’intérieur Start()
de la FinishedLaunching()
méthode
AppCenter.Start("{Your App Secret}", typeof(Analytics), typeof(Crashes));
Notes
Si vous utilisez Plantages, vous devez appeler cette méthode dans l’interface utilisateur/main thread et éviter de démarrer des tâches en arrière-plan tant que la Start
méthode n’est pas retournée.
La raison en est que toute exception de référence null interceptée à partir d’un autre thread pendant l’initialisation des incidents peut déclencher un plantage natif et ignorer la clause catch.
Une fois la AppCenter.Start
méthode retournée, vous pouvez à nouveau essayer/intercepter les exceptions de référence null.
Vous pouvez en savoir plus sur la cause de ce problème de minutage dans l’article Signaux et reporters de crash tiers .
Avertissement
Il n’est pas recommandé d’incorporer votre secret d’application dans le code source.
Important
Les accolades indiquent où placer les secrets d’application réels. Ne placez pas d’accolades dans l’appel Start
.
Notes
Pour une application iOS, il n’est pas possible d’avoir plusieurs SDK de rapports d’incidents actifs dans votre application. Désactivez la fonctionnalité de rapport d’incident des autres SDK pour vous assurer qu’App Center peut intercepter les incidents.
4.3 Remplacez l’espace réservé par votre secret d’application
Veillez à remplacer {Your App Secret}
le texte par la valeur réelle de votre application. Le secret d’application se trouve dans la page Prise en main ou dans la page Paramètres du portail App Center.
La page Prise en main contient l’exemple de code ci-dessus avec votre secret d’application. Vous pouvez copier-coller l’ensemble de l’exemple.
L’exemple ci-dessus montre comment utiliser la Start()
méthode et inclure App Center Analytics et App Center Crashs.
Si vous ne souhaitez pas utiliser l’un des deux services, supprimez le paramètre correspondant de l’appel de méthode ci-dessus.
Sauf si vous spécifiez explicitement chaque module en tant que paramètres dans la méthode de démarrage, vous ne pouvez pas utiliser ce service App Center. En outre, l’API Start()
ne peut être utilisée qu’une seule fois dans le cycle de vie de votre application . Tous les autres appels consignent un avertissement dans la console et seuls les modules inclus dans le premier appel seront disponibles.
Par exemple , si vous souhaitez intégrer App Center Analytics, vous devez modifier l’appel Start()
comme suit :
4.3.1 MAUI et 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));
Très bien, vous êtes tous configurés pour visualiser les données d’analyse et de blocage sur le portail que le KIT de développement logiciel (SDK) collecte automatiquement.
Consultez la documentation relative aux incidents d’App Center Analytics et d’App Center pour découvrir comment personnaliser et utiliser des fonctionnalités plus avancées des deux services.
Pour savoir comment démarrer avec les mises à jour dans l’application, consultez la documentation d’App Center Distribute.
Notes
À l’aide des API portables de Xamarin Forms, vous verrez les API de tous les modules. Toutefois, toutes ces API ne sont pas prises en charge sur les plateformes UWP et Windows Desktop et ne font rien lors de l’exécution sur vos applications UWP et De bureau Windows . En particulier, UWP et Windows Desktop ne prennent pas en charge le module suivant : Distribuer. Toute méthode avec un type de retour retourne ( null
pour les objets), 0
(pour les nombres) ou false
(pour les booléens) sur UWP et l’application de bureau Windows.
5. Règles de sauvegarde (Android uniquement)
Notes
La sauvegarde automatique est automatiquement activée pour les applications qui ciblent Android 6.0 (niveau d’API 23) ou une version ultérieure.
Notes
Si vous avez déjà un fichier personnalisé avec des règles de sauvegarde, passez à la troisième étape.
Si vous utilisez la sauvegarde automatique pour éviter d’obtenir des informations incorrectes sur les appareils, suivez les étapes suivantes :
5.1. Pour Android 11 (niveau API 30) ou version ultérieure.
- Créez appcenter_backup_rule.xml fichier dans le dossier Resources/xml .
- Ouvrez le fichier AndroidManifest.xml du projet. Ajoutez l’attribut
android:fullBackupContent
à l’élément<application>
. Il doit pointer vers le fichier de ressourcesappcenter_backup_rule.xml .
android:fullBackupContent="@xml/appcenter_backup_rule"
- Ajoutez les règles de sauvegarde suivantes au fichier 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. Pour Android 12 (niveau API 31) ou version ultérieure.
- Créez appcenter_backup_rule.xml fichier dans le dossier Resources/xml .
- Ouvrez le fichier AndroidManifest.xml du projet. Ajoutez l’attribut
android:dataExtractionRules
à l’élément<application>
. Il doit pointer vers le fichier de ressourcesappcenter_backup_rule.xml .
android:dataExtractionRules="@xml/appcenter_backup_rule"
- Ajoutez les règles de sauvegarde suivantes au fichier 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>