Freigeben über


Problembehandlung bei MAUI und Xamarin SDK

Von Bedeutung

Visual Studio App Center wurde am 31. März 2025 eingestellt, mit Ausnahme der Analyse- und Diagnosefeatures, die bis zum 30. Juni 2026 weiterhin unterstützt werden. Weitere Informationen

Sammeln ausführlicher Protokolle

Informationen zum Anpassen der Protokollebene VERBOSEfinden Sie im Abschnitt "Andere APIs ".
Die ausführlichen Protokolle finden Sie im Fenster "Debug>Windows>Ausgabe".

Probleme während der Einrichtung

  1. Stellen Sie für eine Xamarin.Forms-App sicher, dass die Pakete in allen Projekten installiert sind, die auf Bibliotheken verweisen. Andernfalls werden Fehler angezeigt.
  2. Wenn dieser Fehler beim Erstellen für Xamarin.iOS angezeigt wird: MTOUCH: Error MT3001: Could not AOT the assembly 'obj/**/Build/Microsoft.AppCenter.**.iOS.Bindings.dll' (MT3001) Sie müssen die Xamarin.iOS-Komponente auf Version 10.4.0.128 oder höher aktualisieren.
  3. Wenn dieser Fehler beim Erstellen für Xamarin.iOS angezeigt wird: MTOUCH: Error MT5210: Native linking failed, undefined symbol: _OBJC_METACLASS_$_MS{SomeSdkClassName}. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in. (MT5210) oder ein ähnlicher Fehler (MT5211 Code mit ähnlicher Meldung, die App Center erwähnt), stellen Sie sicher, dass Sie vor der Verwendung der APIs eines bestimmten Diensts aufrufen AppCenter.Start . Wenn Sie Start aufrufen, aber dieses Problem haben, müssen Sie die Xamarin.iOS-Komponente auf Version 10.4.0.128 oder neuer aktualisieren.
  4. Suchen Sie in der Konsole nach einem Assert-Protokoll mit der Meldung "App Center SDK wurde erfolgreich konfiguriert". Dadurch wird überprüft, ob das SDK erfolgreich konfiguriert ist.

Analysedaten werden nicht im Portal angezeigt

  1. Stellen Sie sicher, dass Sie die SDK-Module ordnungsgemäß integriert haben.

  2. Stellen Sie sicher, dass das richtige App-Geheimnis zusammen mit dem Start() Methodenaufruf enthalten ist. Sie können den genauen Start() Code kopieren, indem Sie die App im Portal öffnen und zur Seite "Erste Schritte" navigieren.

  3. Wenn Sie die Protokolle anzeigen möchten, die an das Back-End gesendet werden, ändern Sie die Protokollebene in "Ausführlich" in Ihrer Anwendung, und das SDK druckt Protokolle in der Konsole. Rufen Sie die folgende API auf, bevor Sie das SDK starten.

    AppCenter.LogLevel = LogLevel.Verbose;
    

    Überprüfen Sie die Protokolle, dass "App Center SDK wurde erfolgreich konfiguriert" (auf der Infoprotokollebene) gesagt wird, und prüfen Sie dann, ob Sie HTTPS-Anforderungsprotokolle sehen.

  4. Stellen Sie sicher, dass Ihr Gerät online ist.

  5. Manchmal kann es einige Minuten dauern, bis Protokolle im Portal angezeigt werden. Warten Sie einige Zeit, wenn dies der Fall ist.

  6. Um zu überprüfen, ob Das App Center-Back-End Ihre Daten empfangen hat, wechseln Sie zum Abschnitt "Protokollfluss" im Analysedienst. Ihre Ereignisse sollten angezeigt werden, sobald sie gesendet wurden.

Abstürze werden nicht im Portal angezeigt

  1. Stellen Sie sicher, dass Sie die SDK-Module ordnungsgemäß integriert haben.

  2. Stellen Sie sicher, dass das richtige App-Geheimnis zusammen mit dem Start() Methodenaufruf enthalten ist. Sie können den genauen Start() Code kopieren, indem Sie die App im Portal öffnen und zur Seite "Erste Schritte" navigieren.

  3. Starten Sie die App nach einem Absturz neu. App Center Crashes sendet das Absturzprotokoll erst nach dem Neustart weiter. Außerdem speichert das SDK unter Xamarin.iOS und Xamarin.Mac kein Absturzprotokoll, wenn Sie einen Debugger angefügt haben. Stellen Sie sicher, dass der Debugger nicht angeschlossen ist, wenn die iOS-App abstürzt. Auf Xamarin.Android können Sie abstürzen, während der Debugger angehängt ist, aber Sie müssen die Ausführung fortsetzen, nachdem Sie in die unbehandelte Ausnahme eingebrochen sind.

  4. Wenn Sie die Protokolle anzeigen möchten, die an das Back-End gesendet werden, ändern Sie die Protokollebene in "Ausführlich" in Ihrer Anwendung, und das SDK druckt Protokolle in der Konsole. Rufen Sie die folgende API auf, bevor Sie das SDK starten.

    AppCenter.LogLevel = LogLevel.Verbose;
    

    Überprüfen Sie die Protokolle, dass "App Center SDK wurde erfolgreich konfiguriert" (auf der Infoprotokollebene) gesagt wird, und prüfen Sie dann, ob Sie HTTPS-Anforderungsprotokolle sehen.

  5. Verwenden Sie keine andere Bibliothek, die Absturzberichtsfunktionen bereitstellt, z. B. Xamarin Insights oder HockeyApp. Sie können nur ein Absturzberichts-SDK integriert haben.

  6. Stellen Sie sicher, dass Ihr Gerät online ist.

  7. Manchmal kann es einige Minuten dauern, bis Protokolle im Portal angezeigt werden. Warten Sie einige Zeit, wenn dies der Fall ist.

  8. Wenn Sie überprüfen möchten, ob das SDK den Absturz beim nächsten Start der App festgestellt hat, können Sie die API aufrufen, um zu überprüfen, ob die App in der letzten Sitzung abgestürzt ist und eine Warnung anzeigt. Oder Sie können den Absturzrückruf erweitern, um festzustellen, ob er erfolgreich an den Server gesendet wurde.

  9. Um zu überprüfen, ob das App Center-Back-End den Absturz erhalten hat, wechseln Sie zum Abschnitt "Protokollfluss" im Analysedienst. Ihre Abstürze sollten dort angezeigt werden, sobald sie gesendet wurden.

Die Verteilung und In-App-Updates blockieren meine automatisierten UI-Tests.

Wenn Sie automatisierte UI-Tests ausführen, blockieren aktivierte In-App-Updates Ihre automatisierten UI-Tests, da sie versuchen, sich beim App Center-Back-End zu authentifizieren. Es wird empfohlen, app Center-Verteilung für Ihre UI-Tests nicht zu aktivieren.

Google Play lehnt die Anwendung nach dem Hinzufügen von DistributePlay ab

Google Play lehnt Apps ab, die das Distribute Modul verwenden, da sie die Implementierung von In-App-Updates enthält. Um diese Situation zu vermeiden, verfügt das App Center SDK über ein DistributePlay Modul, das Stubs für das Hauptmodul enthält. Er ersetzt die Hauptbaugruppe durch eine gestubte Baugruppe, die die Distribute API imitiert. In der Clientanwendung sind keine weiteren Änderungen erforderlich. Der DistributePlay enthält keinen Code, der mit In-App-Updates zusammenhängt. Wenn nach dem Ersetzen des Moduls Distribute durch DistributePlay Ihre App immer noch abgelehnt wird, führen Sie die folgenden Schritte aus, um zu überprüfen, ob das Distribute Modul ordnungsgemäß ersetzt wurde:

  • Stellen Sie sicher, dass Sie in allen Ihren Veröffentlichungen für alle Ihre Veröffentlichungsgruppen in der Google Play-Konsole Distribute durch DistributePlay ersetzt haben.
  • Wenn Sie Xamarin.Forms verwenden, stellen Sie sicher, dass Sie das DistributePlay Modul sowohl zu gemeinsam genutzten als auch zu Xamarin.Android Projekten hinzufügen.
  • Stellen Sie sicher, dass die Ausgabedatei die Microsoft.AppCenter.Distribute.Android.Bindings.dll Assembly nicht enthält. Sie können den APK Analyzer verwenden, um es zu überprüfen.

Nachrichten in der Konsole, die angeben, dass die Datenbank unter iOS nicht geöffnet werden konnte

App Center verwendet SQLite zum Speichern von Protokollen, bevor sie an das Back-End gesendet werden. Wenn Sie Ihre Anwendung mit Ihrer eigenen SQLite-Bibliothek bündeln, anstatt das vom Betriebssystem bereitgestellte zu verwenden, werden möglicherweise Fehler wie dies in der Konsole [AppCenter] ERROR: -[MSACDBStorage executeSelectionQuery:]/147 Failed to open database angezeigt, und im Back-End werden keine Analyse- oder Absturzinformationen angezeigt. Aktualisieren Sie das SDK auf Version 0.16.0 oder höher.

Den Geheimwert des App Centers schützen

Dies app_secret ist ein Bezeichner Ihrer App, es ist erforderlich, zu wissen, für welche App der Datenverkehr gilt, und es kann nicht zum Abrufen oder Bearbeiten vorhandener Daten verwendet werden. Wenn Ihre app_secret Daten verfügbar gemacht werden, besteht das größte Risiko darin, schlechte Daten an Ihre App zu senden, hat aber keine Auswirkungen auf die Sicherheit der Daten.

Um vertrauliche Daten abzurufen, müssen Sie ein App-/ Benutzertoken bereitstellen, das auf der Clientseite generiert wird. Es gibt keine Möglichkeit, Daten auf der Clientseite vollständig sicher zu machen.

Sie können die Sicherheit Ihrer App verbessern, indem Sie eine Umgebungsvariable verwenden, um den geheimen App-Schlüssel in Ihren Code einzufügen. Auf diese Weise ist der geheime Schlüssel in Ihrem Code nicht sichtbar.