Freigeben über


Problembehandlung für MAUI und 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 eine Migration in Betracht ziehen können.

Erfahren Sie mehr über Supportzeitpläne und Alternativen.

Sammeln ausführlicher Protokolle

Anweisungen zum Anpassen der Protokollebene auf VERBOSEfinden Sie im Abschnitt Andere APIs .
Die ausführlichen Protokolle finden Sie im FensterWindows-Ausgabe>debuggen>.

Probleme während des Setups

  1. Stellen Sie bei einer 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 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 einer ähnlichen Meldung, in der App Center erwähnt wird) angezeigt wird, stellen Sie sicher, dass Sie aufrufen AppCenter.Start , bevor Sie die APIs eines bestimmten Diensts verwenden. Wenn Sie aufrufen Start , 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 erfolgreich konfiguriert". Dadurch wird überprüft, ob das SDK erfolgreich konfiguriert wurde.

Analysedaten werden im Portal nicht 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 zu Erste Schritte Seite navigieren.

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

    AppCenter.LogLevel = LogLevel.Verbose;
    

    Überprüfen Sie die Protokolle mit dem Wert "App Center SDK erfolgreich konfiguriert" (in der Protokollebene Info), und überprüfen Sie dann, ob HTTPS-Anforderungsprotokolle angezeigt werden.

  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 im Portal nicht 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 zu Erste Schritte Seite navigieren.

  3. Starten Sie die App nach einem Absturz neu. App Center-Abstürze leitet das Absturzprotokoll erst weiter, nachdem es neu gestartet wurde. 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 angefügt ist, wenn Sie die iOS-App abstürzen. Unter Xamarin.Android können Sie abstürzen, während der Debugger angefügt ist, aber Sie müssen die Ausführung fortsetzen, nachdem Sie in die nicht behandelte Ausnahme aufgebrochen sind.

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

    AppCenter.LogLevel = LogLevel.Verbose;
    

    Überprüfen Sie die Protokolle mit dem Wert "App Center SDK erfolgreich konfiguriert" (in der Protokollebene Info), und überprüfen Sie dann, ob HTTPS-Anforderungsprotokolle angezeigt werden.

  5. Verwenden Sie keine andere Bibliothek, die Absturzberichterstattungsfunktionen bereitstellt, z. B. Xamarin Insights oder HockeyApp. Sie können nur ein SDK für die Absturzberichterstattung integrieren.

  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 App-Start erkannt 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.

Verteilen und In-App-Updates blockieren meine automatisierten UI-Tests

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

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

Google Play lehnt Apps ab, die das Distribute Modul verwenden, da es die In-App-Updateimplementierung enthält. Um diese Situation zu vermeiden, verfügt das App Center SDK über DistributePlay ein Modul, das Stubs für das Standard-Modul enthält. Es ersetzt die Standard Assemble durch stubbed Assemble, die die Distribute API imitiert. In der Clientanwendung sind keine zusätzlichen Änderungen erforderlich. Der DistributePlay verfügt über keinen In-App-Update-bezogenen Code. 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 Releases für alle Ihre Veröffentlichungsgruppen in der Google Play Console durch DistributePlay ersetzt Distribute haben.
  • Wenn Sie verwenden Xamarin.Forms , stellen Sie sicher, dass Sie das DistributePlay Modul sowohl zu freigegebenen Xamarin.Android Projekten als auch zu Projekten hinzufügen.
  • Stellen Sie sicher, dass die Ausgabedatei die Microsoft.AppCenter.Distribute.Android.Bindings.dll Assembly nicht enthält. Sie können das APK-Analysetool verwenden, um dies zu überprüfen.

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

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

Schützen des App Center-Geheimniswerts

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

Zum Abrufen vertraulicher Daten müssen Sie ein App-/ Benutzertoken bereitstellen, das auf der Clientseite generiert wird. Es gibt keine Möglichkeit, Daten auf clientseitiger Seite vollständig sicher zu machen.

Sie können die Sicherheit Ihrer App verbessern, indem Sie eine Umgebungsvariable verwenden, um das App-Geheimnis in Ihren Code einzufügen. Auf diese Weise ist das Geheimnis in Ihrem Code nicht sichtbar.