Otrzymuj czytelne raporty o awariach w panelu Crashlytics


Domyślnie Firebase Crashlytics automatycznie przetwarza pliki symboli debugowania (dSYM), aby generować czytelne dla człowieka raporty o awariach. Zwykle konfigurujesz to zachowanie podczas początkowej konfiguracji Crashlytics w aplikacji, a w szczególności przez dodanie skryptu wykonawczego, który automatycznie przesyła pliki dSYM podczas fazy kompilacji aplikacji.

Niestety, automatyczne przesyłanie plików dSYM może się nie udać z kilku powodów. W tym przewodniku znajdziesz kilka sposobów rozwiązywania problemów, gdy Crashlytics nie może znaleźć plików dSYM Twojej aplikacji.

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

Konfigurując Crashlytics w aplikacji, skonfigurował(a) uruchomiony skrypt aby automatycznie przetworzyć pliki dSYM i przesłać je.

Upewnij się, że konfiguracja skryptu uruchamiania Crashlytics to o nowych wymaganiach, które zaczęły obowiązywać od Xcode 15. Jeśli Konfiguracja jest nieaktualna, może pojawić się następujący 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 Crashlytics (firebase-ios-sdk/Crashlytics/run) sprawdź, czy masz taką konfigurację:

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

  2. W sekcji Pliki wejściowe sprawdź, czy masz ś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)

Sprawdzanie, czy Xcode generuje pliki dSYM

Często zdarza się, że pliki dSYM znikają, ponieważ Xcode po prostu nie generuje . Gdy przesyłanie się nie powiedzie, Crashlytics wyświetli w konsoli Firebase alert „Brak pliku dSYM”. Jeśli otrzymasz taki alert, najpierw sprawdź, czy Xcode generowanie prawidłowego pliku dSYM dla każdej kompilacji:

  1. Otwórz projekt w Xcode, a potem w pliku Navigatora Xcode wybierz plik projektu.

  2. Wybierz główny cel kompilacji.

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

  4. Wyszukaj: debug information format

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

  6. Ponownie skompiluj aplikację.

Raporty o awariach powinny pojawić się w Panel Crashlytics. Jeśli problem będzie się powtarzał lub wystąpią inne błędy, znajdź dSYM-yprześlij je do Crashlytics ręcznie.

Zlokalizowanie plików dSYM na komputerze lokalnym

Uruchom następujące polecenie, aby wyświetlić wszystkie pliki dSYMs identyfikatory UUID na komputerze wyszukaj brakujący plik dSYM:

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

Po znalezieniu pliku dSYM prześlij go ręcznie do Crashlytics. Jeśli polecenie mdfind nie zwróci żadnych wyników, możesz poszukać Katalog Products, w którym znajduje się .app (domyślnie jest to Products znajduje się w lokalizacji Derived Data). Jeśli aplikacja zostanie udostępniona w wersji produkcyjnej, Plik dSYM możesz też wyszukać w katalogu .xcarchive na dysku:

  1. W Xcode otwórz okno Organizer, a potem wybierz aplikację z listy. Xcode wyświetla listę archiwów projektu.

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

  3. W katalogu .xcarchive znajduje się katalog dSYMs zawierający pliki dSYM wygenerowane w ramach procesu archiwizacji Xcode.

Przesyłanie plików dSYM

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

(zalecane) Przetwarzanie plików dSYM i przesyłanie ich automatycznie

Podczas początkowej konfiguracji Crashlytics najprawdopodobniej skonfigurowano automatyczne przesyłanie danych do Twojej aplikacji. Jeśli jednak automatyczne przesyłanie nie działa, sprawdź, czy konfiguracja jest prawidłowa.

Ręczne przesyłanie plików dSYM

Jeśli automatyczne przesyłanie nie działa, możesz ręcznie przesłać pliki dSYM, korzystając z jednego z tych sposobów.

  • Opcja 1. Użyj opartej na konsoli funkcji „Przeciągnij i upuść” opcja przesłania pliku ZIP zawierający pliki dSYM (otwórz Konsola Firebase > Crashlytics > dSYMs).

  • Opcja 2. Użyj skryptu upload-symbols, z którego możesz nawiązać połączenie w dowolnym miejscu procesu kompilacji, aby ręcznie przesłać pliki dSYM. Aby uruchomić skrypt upload-symbols, użyj jednej z tych opcji:

    • Opcja A: dodaj ten 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ć informacje o użyciu i dodatkowe instrukcje dotyczące tego skryptu, uruchom upload-symbols z parametrem --help.