Uzyskaj czytelne raporty o awariach w panelu kontrolnym Crashlytics

Domyślnie Firebase Crashlytics automatycznie przetwarza pliki symboli debugowania (dSYM), aby dostarczyć Ci oczyszczone i czytelne dla człowieka raporty o awariach. Zwykle konfigurujesz to zachowanie podczas początkowej konfiguracji Crashlytics w aplikacji, w szczególności dodając skrypt uruchamiający , który automatycznie przesyła pliki dSYM podczas fazy kompilacji aplikacji.

Niestety, istnieje kilka przypadków, które mogą spowodować niepowodzenie automatycznego przesyłania plików dSYM. W tym przewodniku przedstawiono sposoby rozwiązywania problemów, gdy Crashlytics nie może zlokalizować plików dSYM Twojej aplikacji.

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

Konfigurując Crashlytics w aplikacji, skonfigurowałeś skrypt uruchamiający , który automatycznie przetwarza pliki dSYM i przesyła pliki.

Upewnij się, że konfiguracja skryptu uruchamiającego Crashlytics jest aktualna z nowymi wymaganiami, które rozpoczęły się od Xcode 15. Jeśli konfiguracja nie jest aktualna, może pojawić się następujący błąd:
error: Info.plist Error Unable to process Info.plist at path ... .

W szczególności Xcode 15 i nowsze wersje wymagają podania pełniejszego zestawu lokalizacji plików. W przypadku skryptu uruchamiającego Crashlytics ( firebase-ios-sdk/Crashlytics/run ) upewnij się, że masz następującą konfigurację:

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

  2. W sekcji Pliki wejściowe upewnij się, że masz ścieżki lokalizacji następujących 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 dSYM

Najczęściej pliki dSYM znikają, ponieważ Xcode po prostu ich nie tworzy. Gdy przesyłanie nie powiedzie się, Crashlytics wyświetla alert „Brak dSYM” w konsoli Firebase. Jeśli otrzymasz ten alert, najpierw sprawdź, czy Xcode generuje poprawny 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 obiektu docelowego, a następnie kliknij opcję Wszystkie .

  4. Wyszukaj debug information format .

  5. Ustaw format informacji debugowania na DWARF z plikiem dSYM dla wszystkich typów kompilacji.

  6. Odbuduj swoją aplikację.

Twoje raporty o awariach powinny teraz pojawić się na pulpicie nawigacyjnym Crashlytics . Jeśli problem będzie się powtarzał lub napotkasz inne błędy, spróbuj zlokalizować swoje pliki dSYM i ręcznie przesłać je do Crashlytics .

Znajdź swoje dSYM-y na komputerze lokalnym

Uruchom następujące polecenie, aby wyświetlić wszystkie identyfikatory UUID dSYM na swoim komputerze i wyszukać brakujący dSYM:

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

Gdy znajdziesz plik dSYM, prześlij go ręcznie do Crashlytics . Jeśli polecenie mdfind nie zwróci żadnych wyników, możesz zajrzeć do katalogu Products , w którym znajduje się Twoja .app (domyślnie katalog Products znajduje się w Derived Data ). Jeśli Twoja aplikacja zostanie wypuszczona do wersji produkcyjnej, możesz także poszukać jej dSYM w katalogu .xcarchive na dysku:

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

  2. Kliknij archiwum, trzymając naciśnięty klawisz Control, aby wyświetlić je w Finderze. Kliknij go ponownie, trzymając naciśnięty klawisz Control, a następnie kliknij opcję Pokaż zawartość pakietu .

  3. W .xcarchive znajduje się katalog dSYMs, który zawiera pliki dSYM wygenerowane w ramach procesu archiwizacji Xcode.

Prześlij swoje pliki dSYM

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

(Zalecane) Automatycznie przetwarzaj swoje dSYM i przesyłaj pliki

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

Ręcznie prześlij pliki dSYM

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

  • Opcja 1 : Użyj opcji „Przeciągnij i upuść” w konsoli, aby przesłać plik ZIP zawierający pliki dSYM (przejdź do konsoli Firebase > Crashlytics > karta dSYM ).

  • 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 następujących opcji:

    • Opcja A : Dołącz następujący wiersz do procesu kompilacji:

      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życia i dodatkowe instrukcje dotyczące tego skryptu, uruchom upload-symbols z parametrem --help .