Czytelne raporty o awariach w panelu Crashlytics (platformy Apple)

Wybierz platformę: iOS+ Android Flutter Unity


Domyślnie Firebase Crashlytics automatycznie przetwarza pliki symboli debugowania (dSYM), aby generować raporty o awariach, które są czytelne i nie zawierają zaciemnionego kodu. Zwykle konfigurujesz to zachowanie podczas wstępnej konfiguracji Crashlytics w aplikacji, a konkretnie przez dodanie skryptu uruchamiania, który automatycznie przesyła pliki dSYM podczas fazy kompilacji aplikacji.

Niestety w kilku przypadkach automatyczne przesyłanie plików dSYM może się nie powieść. W tym przewodniku znajdziesz kilka sposobów na rozwiązanie problemu, gdy usługa Crashlytics nie może znaleźć plików dSYM aplikacji.

Sprawdź, czy Xcode może automatycznie przetwarzać pliki dSYM i przesyłać je.

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

Upewnij się, że konfiguracja skryptu Crashlytics jest zgodna z nowymi wymaganiami, które obowiązują od Xcode 15. Jeśli konfiguracja jest nieaktualna, może pojawić się ten błąd:
error: Info.plist Error Unable to process Info.plist at path ...

W szczególności Xcode 15 i nowsze wersje wymagają podania bardziej kompletnego zestawu lokalizacji plików. W przypadku Crashlyticsskryptu uruchamianiafirebase-ios-sdk/Crashlytics/run upewnij się, że masz skonfigurowane te elementy:

  1. Kliknij kartę Build Phases (Fazy kompilacji), a następnie rozwiń sekcję Run Script (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)
    Jeśli w ustawieniach kompilacji projektu masz ENABLE_USER_SCRIPT_SANDBOXING=YESENABLE_DEBUG_DYLIB=YES, uwzględnij te informacje:
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}.debug.dylib

Sprawdzanie, czy Xcode generuje pliki dSYM

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

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

  2. Wybierz główny cel kompilacji.

  3. Otwórz kartę Ustawienia kompilacji projektu docelowego, a następnie kliknij Wszystkie.

  4. Wyszukaj: debug information format

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

  6. Przebuduj aplikację.

Raporty o awariach powinny teraz pojawić się w Crashlyticspanelu. Jeśli problem będzie się powtarzał lub wystąpią inne błędy, spróbuj zlokalizować pliki dSYMprzesłać je do Crashlytics ręcznie.

Znajdowanie plików dSYM na komputerze lokalnym

Aby wyświetlić wszystkie identyfikatory UUID plików dSYM na komputerze i wyszukać brakujący plik dSYM, uruchom to polecenie:

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 zwraca żadnych wyników, możesz poszukać w katalogu Products, w którym znajduje się plik .app (domyślnie katalog Products znajduje się w Derived Data). Jeśli aplikacja została opublikowana w wersji produkcyjnej, możesz też poszukać pliku dSYM w katalogu .xcarchive na dysku:

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

  2. Kliknij archiwum z naciśniętym klawiszem Control, aby wyświetlić je w Finderze. Ponownie kliknij go z naciśniętym klawiszem Control, a następnie kliknij Pokaż zawartość pakietu.

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

Prześlij pliki dSYM

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

(Zalecane) Automatyczne przetwarzanie plików dSYM i przesyłanie plików

Podczas wstępnej konfiguracji Crashlytics najprawdopodobniej skonfigurowano automatyczne przesyłanie danych o 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 jednej z tych opcji.

  • Opcja 1: użyj opcji „Przeciągnij i upuść” w konsoli, aby przesłać plik ZIP zawierający pliki dSYM (otwórz Firebase konsolę > Crashlytics > kartę 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 tych opcji:

    • Opcja A: w procesie kompilacji umieść 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 wyświetlić uwagi dotyczące użycia i dodatkowe instrukcje dotyczące tego skryptu, uruchom polecenie upload-symbols z parametrem --help.