Erste Schritte mit MAUI und Xamarin
Wichtig
Visual Studio App Center wird am 31. März 2025 eingestellt. Sie können Visual Studio App Center zwar weiterhin verwenden, bis es vollständig eingestellt ist, es gibt jedoch mehrere empfohlene Alternativen, zu denen Sie eine Migration in Betracht ziehen können.
Das App Center SDK verwendet eine modulare Architektur, sodass Sie beliebige oder alle Dienste verwenden können.
Beginnen wir mit dem Einrichten des App Center .NET SDK in Ihrer App für die Verwendung von App Center Analytics und App Center-Abstürze. Informationen zum Hinzufügen von App Center Distribute zu Ihrer App finden Sie in der Dokumentation zu App Center Distribute.
1. Voraussetzungen
Stellen Sie zunächst sicher, dass die folgenden Voraussetzungen erfüllt sind:
- Ihr Projekt wird in Visual Studio oder Visual Studio für Mac eingerichtet.
- Sie zielen auf Geräte mit iOS 11.0 oder höher oder Android 5.0 (API-Ebene 21) oder höher ab.
- Sie verwenden kein anderes SDK, das Absturzberichterstattungsfunktionen bereitstellt.
Unterstützte Plattformen:
- MAUI iOS
- MAUI Android
- MAUI-Windows
- .NET 6.0 macOS
- Xamarin.Android
- Xamarin.iOS
- Xamarin.Mac
- Xamarin.Forms (iOS-, macOS-Android-, UWP- und Windows-Desktopanwendungen)
1.1 MAUI
Hinweis
Derzeit gibt es keine MAUI-Plattform im App Center-Portal. Verwenden Sie Xamarin für iOS und Android und UWP für Windows.
1.2 Über Xamarin.Android
Erstellen Sie eine App im App Center-Portal mit Android als Betriebssystem und Xamarin als Plattform.
1.3 Informationen zu Xamarin.iOS
Erstellen Sie eine App im App Center-Portal mit iOS als Betriebssystem und Xamarin als Plattform.
1.4 Über Xamarin.Mac
Erstellen Sie im App Center-Portal eine App mit macOS als Betriebssystem und Xamarin als Plattform.
Warnung
Es gibt ein bekanntes Problem, das verhindert, dass eine App in die App Store hochgeladen wird. Verfolgen Sie den Fortschritt auf GitHub.
1.5 Informationen zu Xamarin.Forms (iOS, macOS, Android, UWP und Windows Desktop)
Erstellen Sie 5 Apps im App Center – eine für jedes Betriebssystem.
Sie müssen Xamarin als Plattform für Android-, iOS- und macOS-Anwendungen auswählen (UWP- und Desktopanwendungen haben keine Xamarin-Option).
Für die Windows-Desktop- und macOS-Anwendungen müssen Sie Ihr Projekt für die Kompatibilität mit der Xamarin.Forms-Plattform konfigurieren.
2. Erstellen Sie Ihre App im App Center-Portal, um das App-Geheimnis zu erhalten.
Wenn Sie Ihre App bereits im App Center-Portal erstellt haben, können Sie diesen Schritt überspringen.
- Wechseln Sie zu appcenter.ms.
- Registrieren Sie sich, oder melden Sie sich an, und klicken Sie auf die blaue Schaltfläche in der oberen rechten Ecke des Portals mit dem Namen Neu hinzufügen , und wählen Sie im Dropdownmenü Die Option Neue App hinzufügen aus.
- Geben Sie einen Namen und eine optionale Beschreibung für Ihre App ein.
- Wählen Sie je nach Projekt das geeignete Betriebssystem und die entsprechende Plattform aus, wie oben beschrieben.
- Klicken Sie auf die Schaltfläche unten rechts mit der Bezeichnung Neue App hinzufügen.
Nachdem Sie eine App erstellt haben, können Sie ihr App-Geheimnis auf der Seite Einstellungen im App Center-Portal abrufen. Klicken Sie oben rechts auf der Seite Einstellungen auf die dreifachen vertikalen Punkte , und wählen Sie aus Copy app secret
, um Ihr App-Geheimnis abzurufen.
3. Hinzufügen des App Center SDK zu Ihrer Lösung
Das App Center SDK kann mithilfe von Visual Studio oder der Paket-Manager-Konsole integriert werden.
Hinweis
Das App Center SDK verwendet Assemblys mit starkem Namen aus Gründen der Kompatibilität mit Anwendungen, die Einzeichen mit starkem Namen verwenden.
Visual Studio für Mac
- Öffnen Sie Visual Studio.
- Klicken Sie auf Datei>öffnen , und wählen Sie Ihre Projektmappe aus.
- Klicken Sie im Lösungsnavigator mit der rechten Maustaste auf den Abschnitt Pakete , und wählen Sie NuGet-Pakete hinzufügen... aus.
- Suchen Sie nach App Center, und wählen Sie App Center-Analyse und App Center-Abstürze aus.
- Klicken Sie auf Pakete hinzufügen.
Visual Studio für Windows
- Öffnen Sie Visual Studio.
- Klicken Sie auf Datei>öffnen , und wählen Sie Ihre Projektmappe aus.
- Klicken Sie im Lösungsnavigator mit der rechten Maustaste auf Verweise , und wählen Sie NuGet-Pakete verwalten aus.
- Suchen Sie nach App Center, und installieren Sie die Pakete Microsoft.AppCenter.Analytics und Microsoft.AppCenter.Crashes .
Paket-Manager-Konsole
- Öffnen Sie die Konsole in Visual Studio. Wählen Sie hierzu Tools> NuGet-Paket-Manager-Paket-Manager-Paket-Manager-Konsole> aus.
- Wenn Sie in Visual Studio für Mac arbeiten, stellen Sie sicher, dass Sie NuGet-Paketverwaltungserweiterungen installiert haben. Wählen Sie hierzu VisualStudio-Erweiterungen> aus, suchen Sie nach NuGet, und installieren Sie sie bei Bedarf.
- Geben Sie den folgenden Befehl in die Konsole ein:
Install-Package Microsoft.AppCenter.Analytics
Install-Package Microsoft.AppCenter.Crashes
Nachdem Sie das SDK nun in Ihre Anwendung integriert haben, ist es an der Zeit, das SDK zu starten und die App Center-Dienste zu nutzen.
Hinweis
Wenn Sie das App Center SDK in einem portablen Projekt (z . B. Xamarin.Forms) verwenden, müssen Sie die Pakete in jedem der Projekte installieren: portable, Android und iOS. Dazu sollten Sie jedes Unterprojekt öffnen und die entsprechenden Schritte ausführen, die in Visual Studio für Mac- oder Visual Studio für Windows-Abschnitten beschrieben werden.
4. Starten des SDK
Um App Center verwenden zu können, müssen Sie sich für die Module entscheiden, die Sie verwenden möchten. Standardmäßig werden keine Module gestartet, und Sie müssen diese beim Starten des SDK explizit aufrufen.
4.1 Hinzufügen der using-Anweisungen
Fügen Sie die entsprechenden Namespaces in den folgenden Dateien hinzu:
- MAUI und Xamarin.Forms -
App.xaml.cs
- Xamarin.iOS und Xamarin.Mac -
AppDelegate.cs
- Xamarin.Android -
MainActivity.cs
using Microsoft.AppCenter;
using Microsoft.AppCenter.Analytics;
using Microsoft.AppCenter.Crashes;
4.2 Hinzufügen der Start()
-Methode
4.2.1 MAUI und Xamarin.Forms
Sie müssen für jede Plattform im App Center-Portal unterschiedliche Anwendungen erstellen. Für jede App verfügen Sie über ein anderes App-Geheimnis. Öffnen Sie die App.xaml.cs-Datei des Projekts, und fügen Sie die folgende Zeile im Konstruktor (oder in der OnStart()
-Methode für Xamarin.Forms) hinzu.
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));
Wenn Sie App Center-Dienste separat starten müssen, sollten Sie:
- Konfigurieren oder starten Sie sie mit dem App-Geheimnis.
- Wenn der Code mehrmals aufgerufen werden kann, überprüfen Sie, ob das App Center bereits konfiguriert ist.
- Starten Sie die erforderlichen Dienste ohne das App-Geheimnis.
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
Hinweis
Falls Sie das HockeyApp SDK für Android verwenden, müssen Sie das HockeyApp SDK nach dem App Center SDK initialisieren.
Öffnen Sie die MainActivity.cs-Datei des Projekts, und fügen Sie den Start()
Aufruf in der OnCreate()
-Methode hinzu.
AppCenter.Start("{Your App Secret}", typeof(Analytics), typeof(Crashes));
Hinweis
Wenn Ihre Anwendung Über Hintergrunddienste oder mehrere Einstiegspunkte wie einen Broadcastempfänger, exportierte Aktivitäten oder Inhaltsanbieter verfügt, wird empfohlen, stattdessen mit dem Application.OnCreate
Rückruf zu beginnenAppCenter
.
4.2.3 Xamarin.iOS und Xamarin.Mac
Hinweis
Es ist nicht möglich, mehr als ein aktives Absturzberichts-SDK in Ihrer App zu haben. Deaktivieren Sie die Absturzberichtsfunktion der anderen SDKs, um sicherzustellen, dass App Center die Abstürze abfangen kann.
Öffnen Sie die Datei des AppDelegate.cs
Projekts, und fügen Sie den Start()
Aufruf in der FinishedLaunching()
-Methode hinzu.
AppCenter.Start("{Your App Secret}", typeof(Analytics), typeof(Crashes));
Hinweis
Wenn Sie Abstürze verwenden, müssen Sie diese Methode im Ui/Standard-Thread aufrufen und hintergrundaufgaben vermeiden, bis die Start
Methode zurückgegeben wird.
Der Grund dafür ist, dass jede NULL-Verweisausnahme, die während der Initialisierung von Abstürze von einem anderen Thread erfasst wird, einen systemeigenen Absturz auslösen und die Catch-Klausel ignorieren kann.
Sobald die AppCenter.Start
Methode zurückgegeben wird, ist es sicher, NULL-Verweisausnahmen erneut zu versuchen/abzufangen.
Weitere Informationen zur Ursache dieses Zeitsteuerungsproblems finden Sie im Artikel Signale und Absturzreporter von Drittanbietern .
Warnung
Es wird nicht empfohlen, Ihr App-Geheimnis in den Quellcode einzubetten.
Wichtig
Die geschweiften Klammern zeigen an, wo die eigentlichen App-Geheimnisse platziert werden sollen, und fügen Sie keine geschweiften Klammern in den Start
Anruf ein.
Hinweis
Für eine iOS-Anwendung ist es nicht möglich, mehr als ein aktives Absturzberichts-SDK in Ihrer App zu haben. Deaktivieren Sie die Absturzberichtsfunktion der anderen SDKs, um sicherzustellen, dass App Center die Abstürze abfangen kann.
4.3 Ersetzen Sie den Platzhalter durch Ihr App-Geheimnis.
Stellen Sie sicher, dass Text durch den tatsächlichen Wert für Ihre Anwendung ersetzt {Your App Secret}
wird. Das App-Geheimnis finden Sie auf der Seite Erste Schritte oder auf der Seite Einstellungen im App Center-Portal.
Die Seite Erste Schritte enthält das obige Codebeispiel mit Ihrem App-Geheimnis. Sie können das gesamte Beispiel kopieren und einfügen.
Das obige Beispiel zeigt, wie Sie die Start()
-Methode verwenden und sowohl App Center Analytics als auch App Center-Abstürze einschließen.
Wenn Sie keinen der beiden Dienste verwenden möchten, entfernen Sie den entsprechenden Parameter aus dem obigen Methodenaufruf.
Wenn Sie jedes Modul nicht explizit als Parameter in der start-Methode angeben, können Sie diesen App Center-Dienst nicht verwenden. Darüber hinaus kann die Start()
API nur einmal im Lebenszyklus Ihrer App verwendet werden. Alle anderen Aufrufe protokollieren eine Warnung in der Konsole, und nur die module, die im ersten Aufruf enthalten sind, sind verfügbar.
Beispiel: Wenn Sie das Onboarding in App Center Analytics durchführen möchten, sollten Sie den Start()
Aufruf wie folgt ändern:
4.3.1 MAUI und 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));
Großartig, Sie sind alle bereit, Analyse- und Absturzdaten im Portal zu visualisieren, die das SDK automatisch erfasst.
Sehen Sie sich die Dokumentation für App Center Analytics und App Center-Abstürze an, um zu erfahren, wie Sie erweiterte Funktionen beider Dienste anpassen und verwenden.
Informationen zu den ersten Schritten mit In-App-Updates finden Sie in der Dokumentation von App Center Distribute.
Hinweis
Bei Verwendung der portablen APIs aus Xamarin Forms werden APIs aus allen Modulen angezeigt, aber nicht alle diese APIs werden auf der UWP - und Windows Desktop-Plattform unterstützt und tun nichts, wenn sie auf Ihren UWP- und Windows-Desktopanwendungen ausgeführt werden. Insbesondere UWP und Windows Desktop unterstützen das folgende Modul nicht: Verteilen. Jede Methode mit einem Rückgabetyp würde entweder null
(für Objekte), 0
(für Zahlen) oder false
(für Boolesche) in der UWP- und Windows-Desktopanwendung zurückgeben.
5. Sicherungsregeln (nur Android)
Hinweis
Für Apps mit Android 6.0 (API-Ebene 23) oder höher ist die automatische Sicherung automatisch aktiviert.
Hinweis
Wenn Sie bereits über eine benutzerdefinierte Datei mit Sicherungsregeln verfügen, wechseln Sie zum dritten Schritt.
Wenn Sie die automatische Sicherung verwenden, um falsche Geräteinformationen zu vermeiden, führen Sie die nächsten Schritte aus:
5.1. Für Android 11 (API-Ebene 30) oder niedriger.
- Erstellen Sie appcenter_backup_rule.xml Datei im Ordner Resources/xml .
- Öffnen Sie die AndroidManifest.xml Datei des Projekts. Fügen Sie dem -Element das
android:fullBackupContent
<application>
-Attribut hinzu. Sie sollte auf die appcenter_backup_rule.xml-Ressourcendatei verweisen.
android:fullBackupContent="@xml/appcenter_backup_rule"
- Fügen Sie der dateiappcenter_backup_rule.xml die folgenden Sicherungsregeln hinzu:
<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. Für Android 12 (API-Ebene 31) oder höher.
- Erstellen Sie appcenter_backup_rule.xml Datei im Ordner Resources/xml .
- Öffnen Sie die AndroidManifest.xml Datei des Projekts. Fügen Sie dem -Element das
android:dataExtractionRules
<application>
-Attribut hinzu. Sie sollte auf die appcenter_backup_rule.xml-Ressourcendatei verweisen.
android:dataExtractionRules="@xml/appcenter_backup_rule"
- Fügen Sie der dateiappcenter_backup_rule.xml die folgenden Sicherungsregeln hinzu:
<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>