Migrieren vom HockeySDK zum App Center Xamarin SDK
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 möglicherweise eine Migration in Erwägung ziehen.
Befolgen Sie diese Dokumentation, wenn Sie Ihre Anwendung aktualisieren möchten, um das App Center SDK anstelle von HockeySDK zu verwenden.
1. Aktualisieren der Bibliotheken
Ersetzen Sie das HockeySDK.Xamarin NuGet-Paket in allen Projekten in Ihrer Projektmappe durch App Center-Pakete.
Visual Studio für Mac
- Öffnen Sie Visual Studio für Mac.
- Klicken Sie auf Datei>öffnen , und wählen Sie Ihre Projektmappe aus.
- Klicken Sie im Projektmappennavigator mit der rechten Maustaste auf den Abschnitt Pakete , und wählen Sie NuGet-Pakete hinzufügen... aus.
- Entfernen Sie das Paket HockeySDK.Xamarin .
- Suchen Sie nach App Center, und wählen Sie App Center Analytics, App Center Abstürze und App Center Verteilen aus.
- Klicken Sie auf Pakete hinzufügen.
Visual Studio für Windows
- Öffnen Sie Visual Studio für Windows.
- 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.
- Entfernen Sie das Paket HockeySDK.Xamarin .
- Suchen Sie nach App Center, und installieren Sie die Pakete Microsoft.AppCenter.Analytics, Microsoft.AppCenter.Crashes und Microsoft.AppCenter.Distribute .
Paket-Manager-Konsole
- Öffnen Sie die Konsole in Visual Studio. Wählen Sie hierzu Extras>NuGet-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:
Uninstall-Package HockeySDK.Xamarin
Install-Package Microsoft.AppCenter.Analytics
Install-Package Microsoft.AppCenter.Crashes
Install-Package Microsoft.AppCenter.Distribute
Das App Center SDK ist mit einem modularen Ansatz konzipiert: Sie können nur die Dienste integrieren, die Sie interessieren. Jedes SDK-Modul muss in diesem Abschnitt als separate Abhängigkeit hinzugefügt werden. Sehen Sie sich die Äquivalenzen in der nächsten Tabelle an:
HockeyApp-Klasse | App Center-Modul |
---|---|
MetricsManager |
Analytics |
CrashManager |
Crashes |
UpdateManager |
Distribute |
2. Aktualisieren des SDK-Setupcodes
2.1 Konvertieren des Anwendungsbezeichners
Das App Center SDK verwendet Anwendungsbezeichner im GUID-Format (Globally Unique Identifier). Ihre HockeyApp App-ID kann vom App Center verwendet werden, sie muss jedoch in ein anderes Format konvertiert werden. Um den Bezeichner zu konvertieren, müssen Sie vier Bindestriche hinzufügen, um eine 8-4-4-4-12-Darstellung zu erhalten.
Vorher (HockeyApp): 00112233445566778899aabbccddeeff
Nach (App Center): 00112233-4455-6677-8899-aabbccddeeff
2.2 Ersetzen der SDK-Initialisierung im Anwendungscode
Entfernen Sie den alten HockeyApp-Registrierungscode.
Xamarin.Android : Öffnen Sie die MainActivity.cs des Projekts, und entfernen Sie die folgenden Zeilen:
using HockeyApp.Android; ... CrashManager.Register(this, "APP_IDENTIFIER"); MetricsManager.Register(Application, "APP_IDENTIFIER"); UpdateManager.Register(this, "APP_IDENTIFIER");
Entfernen Sie das folgende Attribut auf Assemblyebene in Eigenschaften/AssemblyInfo.cs:
[assembly: MetaData ("net.hockeyapp.android.appIdentifier", Value="APP_IDENTIFIER")]
Xamarin.iOS : Öffnen Sie die AppDelegate.cs des Projekts, und entfernen Sie die folgenden Zeilen:
using HockeyApp.iOS; ... var manager = BITHockeyManager.SharedHockeyManager; manager.Configure("APP_IDENTIFIER"); manager.StartManager(); manager.Authenticator.AuthenticateInstallation();
Starten des App Center SDK
- Der weiter unten in diesem Abschnitt erwähnte Initialisierungscode erfordert das Hinzufügen der folgenden Zeilen unter den vorhandenen
using
Anweisungen:
using Microsoft.AppCenter; using Microsoft.AppCenter.Analytics; using Microsoft.AppCenter.Crashes; using Microsoft.AppCenter.Distribute;
Xamarin.Android:
Öffnen Sie die MainActivity.cs Datei des Projekts, und fügen Sie den
Start()
Aufruf in derOnCreate()
-Methode hinzu.AppCenter.Start("{Your App Secret}", typeof(Analytics), typeof(Crashes), typeof(Distribute));
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
.Xamarin.iOS:
Öffnen Sie die Projektdatei,
AppDelegate.cs
und fügen Sie denStart()
Aufruf innerhalb derFinishedLaunching()
-Methode hinzu.AppCenter.Start("{Your App Secret}", typeof(Analytics), typeof(Crashes), typeof(Distribute));
Hinweis
Wenn Sie Abstürze verwenden, müssen Sie diese Methode im Ui/Standard-Thread aufrufen und vermeiden, Hintergrundaufgaben zu starten, bis die
Start
Methode zurückgegeben wird. Der Grund ist, dass jede NULL-Verweisausnahme, die während der Initialisierung von Abstürze von einem anderen Thread abgefangen wird, einen systemeigenen Absturz auslösen und die Catch-Klausel ignorieren kann. Sobald dieAppCenter.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 .Xamarin.Forms:
Um eine Xamarin.Forms-Anwendung für iOS-, Android- und UWP-Plattformen zu verwenden, müssen Sie drei Anwendungen im App Center-Portal erstellen – eine für jede Plattform. Beim Erstellen von drei Apps erhalten Sie drei App-Geheimnisse – jeweils eins. Öffnen Sie die App.xaml.cs Datei des Projekts (oder Ihre Klasse, die von
Xamarin.Forms.Application
erbt) in Ihrem freigegebenen oder portablen Projekt, und fügen Sie die folgende Methode in derOnStart()
-Methode hinzu.AppCenter.Start("ios={Your App Secret};android={Your App Secret}", typeof(Analytics), typeof(Crashes), typeof(Distribute));
Wichtig
Die geschweiften Klammern sollen lediglich dokumentieren, dass Sie diesen Inhalt durch die tatsächlichen App-Geheimnisse ersetzen müssen. Legen Sie keine geschweiften Klammern in den
Start
Aufruf ein.Hinweis
Falls Sie das HockeyApp SDK für Android verwenden, müssen Sie das HockeyApp SDK nach dem App Center SDK initialisieren. Für Ihre 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.
Hinweis
Die Hinweise aus den vorherigen Abschnitten zu iOS und Android gelten auch für Xamarin.Forms. Wenn diese Hinweise für Ihre Anwendung gelten, müssen Sie AppCenter möglicherweise an verschiedenen Stellen pro Plattform initialisieren.
- Der weiter unten in diesem Abschnitt erwähnte Initialisierungscode erfordert das Hinzufügen der folgenden Zeilen unter den vorhandenen
[Nur für die Verteilung von iOS] Ändern der Datei Info.plist des Projekts
- Fügen Sie einen neuen Schlüssel für
URL types
oderCFBundleURLTypes
in Ihrer Info.plist-Datei hinzu (falls Xcode Ihre Info.plist als Quellcode anzeigt). - Ändern Sie den Schlüssel des ersten untergeordneten Elements in
URL Schemes
oderCFBundleURLSchemes
. - Geben Sie
appcenter-${Your App Secret}
als URL-Schema ein, und ersetzen Sie${Your App Secret}
durch das App-Geheimnis Ihrer App.
Weitere Informationen hierzu finden Sie in der Dokumentation zum Verteilen von App Center.
- Fügen Sie einen neuen Schlüssel für
Ersetzen Sie alle HockeyApp-API-Aufrufe in der gesamten Anwendung. Die detaillierten API-Zuordnungstabellen sind unten aufgeführt.
3. Dienste- und Featurevergleich
Core
Funktion | HockeyApp | App Center |
---|---|---|
Anpassen der Protokollebene | SharedHockeyManager.LogLevel (iOS) oder HockeyLog.LogLevel (Android) |
AppCenter.LogLevel |
Identifizieren von Installationen | nur iOS | AppCenter.GetInstallIdAsync |
Identifizieren von Benutzern | Nur Absturz | AppCenter.SetUserId |
Analyse
Funktion | HockeyApp | App Center |
---|---|---|
Automatisches Nachverfolgen von Sitzungen | Ja, kann nur unter Android deaktiviert werden | Dokumentation (kann nicht deaktiviert werden) |
Benutzerdefinierte Ereignisse mit Eigenschaften | HockeyApp.MetricsManager.TrackEvent |
Analytics.TrackEvent |
Deaktivieren des Diensts zur Laufzeit | MetricsManager.DisableUserMetrics (Android) oder SharedHockeyManager.DisableMetricsManager (iOS) |
Analytics.SetEnabledAsync |
Crashes
Funktion | HockeyApp | App Center |
---|---|---|
Automatisches Senden von Abstürze | Standardmäßig deaktiviert | Dokumentation (standardmäßig aktiviert) |
Generieren eines Testabsturzes | CrashManager.GenerateTestCrash (Nur iOS) |
Crashes.GenerateTestCrash |
Anfügen zusätzlicher Metadaten | Yes | Dokumentation (kann vom Listener angefügt werden) |
Dialogfeld "Benutzer anpassen" | Yes | Dokumentation (standardmäßig nicht bereitgestellt) |
Abrufen von Informationen zum sendenden status | Nur Android | Dokumentation |
Informationen zu einem vorherigen Absturz | CrashManager.GetLastCrashDetails (Android) oder CrashManager.LastSessionCrashDetails (iOS) |
Crashes.GetLastSessionCrashReportAsync |
Deaktivieren des Diensts zur Laufzeit | SharedHockeyManager.DisableCrashManager (nur iOS) |
Crashes.SetEnabledAsync |
Verteilen
Hinweis
Im Gegensatz zu HockeyApp funktioniert das App Center-Feature für In-App-Updates nur mit RELEASE-Builds (standardmäßig), die mithilfe des App Center-Verteilungsdiensts verteilt werden. Wenn die App eine private Verteilergruppe verwendet, wird nach der Installation und dem ersten Öffnen der App Center Distribution SDK ein Browser geöffnet, um den Benutzer zu authentifizieren und In-App-Updates zu aktivieren. Dieser Browser wird auch geöffnet, wenn Sie zur Laufzeit die private In-App-Updatespur festlegen. Dies ist ein EINMALIGEr Schritt, der für nachfolgende Versionen Ihrer App nicht ausgeführt wird. Weitere Informationen finden Sie in der App Center-Dokumentation zum Verteilen .
Funktion | HockeyApp | App Center |
---|---|---|
Eingeschränkte In-App-Updates | LoginManager.VerifyLogin (Android) oder Authenticator.AuthenticateInstallation (iOS) |
Distribute.UpdateTrack |
Deaktivieren des Diensts zur Laufzeit | UpdateManager.Unregister (Android) oder SharedHockeyManager.DisableUpdateManager (iOS) |
Distribute.SetEnabledAsync |
Anpassen des Aktualisierungsdialogfelds | Yes | Distributed.ReleaseAvailable |
Feedback-Dienst
Der Feedbackdienst wird in App Center nicht unterstützt. Weitere Informationen finden Sie unter HockeyApp-Feedback.