Uzyskiwanie czytelnych raportów o awariach w panelu Crashlytics (Flutter)
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Domyślnie Firebase Crashlytics automatycznie instrumentuje projekt Flutter, aby przesyłać niezbędne pliki symboli, które zapewniają deobfuskację raportów o awariach i ich czytelność.
Niestety w niektórych przypadkach projekt może nie zostać w pełni skonfigurowany. Ten przewodnik zawiera opis działania automatyzacji i pierwsze kroki, które należy wykonać, aby debugować konfigurację projektu.
Platformy Apple
Sprawdzanie konfiguracji przesyłania plików dSYM
Dodanie Crashlytics wtyczki Fluttera i uruchomienie polecenia flutterfire configure spowoduje próbę dodania do obszaru roboczego Xcode projektu skryptu uruchamiania, który znajdzie i prześle niezbędne pliki symboli dSYM do Crashlytics. Bez tych plików w panelu Crashlytics zobaczysz alert „Brak pliku dSYM”, a wyjątki będą przechowywane na serwerze backendu do momentu przesłania brakujących plików.
Jeśli wystąpi ten problem, najpierw sprawdź, czy masz zainstalowany skrypt uruchamiania:
Znajdź i otwórz plik obszaru roboczego Xcode w katalogu iOS projektu (FLUTTER_PROJECT_NAME/ios/Runner.xcworkspace).
Sprawdź, czy do faz kompilacji elementu docelowego Runner dodano skrypt o nazwie
[firebase_crashlytics] Crashlytics Upload Symbols.
Skrypt do automatycznego przesyłania plików dSYM nie istnieje
Jeśli ten skrypt uruchamiania nie istnieje, możesz go dodać ręcznie:
Znajdź identyfikator aplikacji Firebase dla aplikacji na urządzenia Apple. Możesz go znaleźć w 2 miejscach:
W Firebase konsoli otwórz swój
settings > Ustawienia projektu.
Otwórz kartę Twoje aplikacje, a potem kliknij aplikację Firebase na iOS, aby wyświetlić informacje o niej, w tym identyfikator aplikacji.
W katalogu najwyższego poziomu projektu Flutter znajdź plik firebase_options.dart. Identyfikator aplikacji Firebase dla aplikacji na urządzenia Apple jest oznaczony jako appId.
Kliknij add > New Run Script Phase (Nowa faza skryptu).
Upewnij się, że nowa faza Run Script jest ostatnią fazą kompilacji projektu. W przeciwnym razie Crashlytics nie będzie w stanie prawidłowo przetworzyć plików dSYM.
Rozwiń nową sekcję Uruchom skrypt.
W polu skryptu (pod etykietą Shell) dodaj te skrypty uruchamiania.
Te skrypty przetwarzają pliki dSYM i przesyłają je do usługi Crashlytics.
FIREBASE_APP_ID: identyfikator aplikacji Firebase na iOS (nie identyfikator pakietu Apple)
Przykładowy identyfikator aplikacji Firebase na iOS: 1:1234567890:ios:321abc456def7890
Chcesz znaleźć identyfikator aplikacji Firebase?
Identyfikator aplikacji Firebase możesz znaleźć na 2 sposoby:
W pliku GoogleService-Info.plist identyfikator aplikacji to wartość GOOGLE_APP_ID;
W konsoli Firebase otwórz ustawienia projektu.
Otwórz kartę Twoje aplikacje, a następnie kliknij wybraną aplikację Firebase, aby znaleźć jej identyfikator.
W sekcji Pliki wejściowe dodaj ścieżki do lokalizacji tych plików:
Xcode szuka tych plików wejściowych w określonych lokalizacjach, aby mieć pewność, że pliki kompilacji są dostępne dla skryptu uruchamiania. Jeśli włączona jest funkcja User Script Sandboxing, Xcode zezwala skryptowi uruchamiania tylko na dostęp do plików określonych w sekcji Input Files.
Podanie lokalizacji plików dSYM projektu umożliwia Crashlytics przetwarzanie tych plików.
Podanie lokalizacji pliku GoogleService-Info.plistCrashlytics umożliwia powiązanie dSYM z aplikacją Firebase.
Podanie lokalizacji pliku wykonywalnego aplikacji umożliwia skryptowi uruchamiającemu zapobieganie duplikowaniu przesyłania tego samego pliku dSYM. Pamiętaj, że pliki binarne aplikacji nie są przesyłane.
Istnieje skrypt do automatycznego przesyłania plików dSYM
Znajdź identyfikator aplikacji Firebase dla aplikacji na urządzenia Apple. Możesz go znaleźć w 2 miejscach:
W Firebase konsoli otwórz swój
settings > Ustawienia projektu.
Otwórz kartę Twoje aplikacje, a potem kliknij aplikację Firebase na iOS, aby wyświetlić informacje o niej, w tym identyfikator aplikacji.
W katalogu najwyższego poziomu projektu Flutter znajdź plik firebase_options.dart. Identyfikator aplikacji Firebase dla aplikacji na urządzenia Apple jest oznaczony jako appId.
Podczas uruchamiania skryptu upload-symbols używaj
-ai FIREBASE_APPLE_APP_ID zamiast
-gsp /path/to/GoogleService-Info.plist.
Sprawdź konfigurację wersji Fluttera i Crashlytics(jeśli używasz flagi --split-debug-info).
Jeśli Twój projekt Fluttera używa flagi --split-debug-info (i opcjonalnie flagi --obfuscate), musisz wykonać dodatkowe czynności, aby wyświetlać czytelne ślady stosu w aplikacji.
Upewnij się, że w projekcie używasz zalecanej konfiguracji wersji (Flutter 3.12.0 lub nowszy i Crashlytics wtyczka Fluttera 3.3.4 lub nowsza), aby projekt mógł automatycznie generować i przesyłać symbole Fluttera (pliki dSYM) do Crashlytics.
Android
Sprawdzanie konfiguracji zależności
Polecenie flutterfire configure próbuje dodać niezbędne zależności do plików kompilacji Gradle projektu. Bez tych zależności raporty o awariach w konsoli Firebase mogą być zaciemnione, jeśli zaciemnianie jest włączone.
Sprawdź, czy w pliku build.gradle na poziomie projektu i w pliku build.gradle na poziomie aplikacji znajdują się te wiersze:
W pliku kompilacji na poziomie projektu (android/build.gradle) sprawdź, czy jest w nim ten wiersz:
W pliku kompilacji na poziomie aplikacji (android/app/build.gradle) sprawdź, czy znajduje się w nim ten wiersz:
// ... other importsandroid{// ... your android config}dependencies{// ... your dependencies}// This section must appear at the bottom of the fileapplyplugin:'com.google.gms.google-services'applyplugin:'com.google.firebase.crashlytics'
Sprawdź, czy do przesyłania symboli Fluttera używasz interfejsu wiersza poleceń (jeśli używasz flagi --split-debug-info).
Jeśli Twój projekt Fluttera używa flagi --split-debug-info (i opcjonalnie flagi --obfuscate), musisz wykonać dodatkowe czynności, aby wyświetlać czytelne ślady stosu w aplikacji.
Użyj Firebase CLI (wersja 11.9.0 lub nowsza), aby przesłać symbole debugowania Fluttera. Zanim zgłosisz awarię z kompilacji kodu zaciemnionego, musisz przesłać symbole debugowania.
W katalogu głównym projektu Flutter uruchom to polecenie:
FIREBASE_APP_ID: identyfikator aplikacji Firebase na Androida (nie nazwa pakietu)
Przykładowy identyfikator aplikacji Firebase na Androida: 1:567383003300:android:17104a2ced0c9b9b
Chcesz znaleźć identyfikator aplikacji Firebase?
Identyfikator aplikacji Firebase możesz znaleźć na 2 sposoby:
W pliku google-services.json identyfikator aplikacji to wartość mobilesdk_app_id;
W konsoli Firebase otwórz ustawienia projektu.
Otwórz kartę Twoje aplikacje, a następnie kliknij wybraną aplikację Firebase, aby znaleźć jej identyfikator.
PATH/TO/symbols: ten sam katalog, który przekazujesz do flagi --split-debug-info podczas tworzenia aplikacji.