Otrzymuj czytelne raporty o awariach w panelu Crashlytics

Domyślnie Firebase Crashlytics automatycznie przetwarza pliki symboli debugowania (dSYM), aby dostarczać Ci raporty o awariach z usuniętym zaciemnieniem kodu i zrozumiałe dla człowieka. To zachowanie konfiguruje się zwykle podczas początkowej konfiguracji Crashlytics w aplikacji, a w szczególności przez dodanie skryptu uruchamiania, który automatycznie przesyła pliki dSYM na etapie kompilacji aplikacji.

Niestety w kilku przypadkach automatyczne przesyłanie plików dSYM może się nie udać. W tym przewodniku znajdziesz sposoby rozwiązywania problemów, które występują, gdy Crashlytics nie może znaleźć plików dSYM aplikacji.

Upewnij się, że Xcode może automatycznie przetwarzać pliki dSYM i przesyłać je

Podczas konfigurowania Crashlytics w aplikacji masz skonfigurowany skrypt uruchamiania, który automatycznie przetwarza pliki dSYM i je przesyła.

Sprawdź, czy konfiguracja skryptu uruchamiania Crashlytics jest zgodna z nowymi wymaganiami, które rozpoczęły się od Xcode 15. Jeśli Twoja konfiguracja jest nieaktualna, może wyświetlać się ten błąd:
error: Info.plist Error Unable to process Info.plist at path ....

Xcode 15 i nowsze wymagają podania bardziej kompletnego zestawu lokalizacji plików. W przypadku skryptu uruchamiania Crashlytics (firebase-ios-sdk/Crashlytics/run) upewnij się, że masz tę konfigurację:

  1. Kliknij kartę Etapy kompilacji, a następnie rozwiń sekcję Uruchom skrypt.

  2. Upewnij się, że w sekcji Pliki wejściowe znajdują się ścieżki do lokalizacji tych plików:

    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist
    $(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
    $(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)

Sprawdź, czy Xcode generuje pliki dSYM

Pliki dSYM najczęściej znikają, ponieważ Xcode po prostu ich nie tworzy. Gdy przesyłanie się nie uda, Crashlytics wyświetla alert „Brak pliku dSYM” w konsoli Firebase. Jeśli otrzymasz ten alert, najpierw sprawdź, czy Xcode generuje prawidłowy plik dSYM dla każdej kompilacji:

  1. Otwórz swój projekt w Xcode, a następnie wybierz plik projektu w Xcode Navigator.

  2. Wybierz główny cel kompilacji.

  3. Otwórz kartę Ustawienia kompilacji celu i kliknij Wszystkie.

  4. Wyszukaj: debug information format

  5. Ustaw Format informacji o debugowaniu na DWARF z plikiem dSYM w przypadku wszystkich typów kompilacji.

  6. Przebuduj aplikację.

Raporty o awariach powinny się teraz pojawiać w panelu Crashlytics. Jeśli problem nie ustąpi lub pojawią się inne błędy, spróbuj zlokalizować pliki dSYM i przesłać je do Crashlytics ręcznie.

Zlokalizuj pliki dSYM na komputerze lokalnym

Uruchom to polecenie, aby wyświetlić wszystkie identyfikatory UUID wszystkich plików dSYM na swoim komputerze i wyszukać brakujący plik dSYM:

mdfind -name .dSYM | while read -r line; do dwarfdump -u "$line"; done

Gdy znajdziesz plik dSYM, ręcznie prześlij go do Crashlytics. Jeśli polecenie mdfind nie zwróci żadnych wyników, możesz poszukać w katalogu Products, w którym znajduje się Twój .app (domyślnie katalog Products znajduje się w lokalizacji Derived Data). Jeśli Twoja aplikacja została udostępniona w wersji produkcyjnej, możesz też poszukać jej pliku dSYM w katalogu .xcarchive na dysku:

  1. W Xcode otwórz okno Organizator, a następnie wybierz aplikację z listy. Xcode wyświetla listę archiwów Twojego projektu.

  2. Kliknij archiwum z naciśniętym klawiszem Control, aby wyświetlić je w programie Finder. Kliknij go jeszcze raz z naciśniętym klawiszem Control i kliknij Pokaż zawartość pakietu.

  3. .xcarchive to katalog dSYM, w którym znajdują się pliki dSYM wygenerowane w ramach procesu archiwizacji Xcode.

Prześlij pliki dSYM

Crashlytics obsługuje wiele sposobów przesyłania plików dSYM: automatycznie lub ręcznie.

(Zalecane) Automatycznie przetwarzaj pliki dSYM i przesyłaj je.

Podczas początkowej konfiguracji Crashlytics prawdopodobnie skonfigurowano automatyczne przesyłanie aplikacji. Jeśli jednak przesyłanie się nie powiedzie, sprawdź, czy konfiguracja jest prawidłowa.

Ręczne przesyłanie plików dSYM

Jeśli automatyczne przesyłanie się nie powiedzie, możesz ręcznie przesłać pliki dSYM, korzystając z jednej z poniższych opcji.

  • Opcja 1. Użyj opartej na konsoli opcji „Przeciągnij i upuść”, aby przesłać plik ZIP zawierający pliki dSYM (otwórz konsolę Firebase i kliknij Crashlytics > karta dSYMs).

  • Opcja 2. Użyj skryptu upload-symbols, który możesz wywołać z dowolnego miejsca w procesie kompilacji, aby ręcznie przesłać pliki dSYM. Aby uruchomić skrypt upload-symbols, użyj jednej z tych opcji:

    • Opcja A: uwzględnij w procesie kompilacji ten wiersz:

      find dSYM_DIRECTORY -name "*.dSYM" | xargs -I \{\} $PODS_ROOT/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p PLATFORM \{\}
    • Opcja B: uruchom skrypt bezpośrednio z terminala:

      /PATH/TO/PODS/DIRECTORY/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p ios /PATH/TO/dSYMs

    Aby uzyskać uwagi dotyczące użytkowania i dodatkowe instrukcje dotyczące tego skryptu, uruchom polecenie upload-symbols z parametrem --help.