Otrzymuj czytelne raporty o awariach w panelu Crashlytics

Domyślnie Firebase Crashlytics automatycznie przetwarza pliki symboli debugowania (dSYM), aby umożliwić generowanie rozjaśnionych i zrozumiałych dla człowieka raportów o awariach. Zwykle konfiguruje się to podczas początkowej konfiguracji Crashlytics w swojej aplikacji, a w szczególności dodając skrypt uruchamiania, który automatycznie przesyła pliki dSYM na etapie kompilacji aplikacji.

Jest kilka przypadków, które mogą spowodować niepowodzenie automatycznego przesyłania plików dSYM. W tym przewodniku znajdziesz kilka sposobów rozwiązywania problemów, gdy Crashlytics nie może znaleźć plików dSYM Twojej 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 je przesyła.

Upewnij się, że konfiguracja skryptu uruchamiania Crashlytics jest aktualna zgodnie z nowymi wymaganiami, które zaczęły się od Xcode 15. Jeśli Twoja konfiguracja jest nieaktualna, może pojawić 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) musisz mieć następującą konfigurację:

  1. Kliknij kartę Etapy kompilacji, a następnie rozwiń sekcję Uruchamianie skryptu.

  2. Sprawdź, czy w sekcji Pliki wejściowe masz podane ś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

Często zdarza się, że pliki dSYM znikają, ponieważ Xcode ich nie generuje. Jeśli przesyłanie się nie uda, Crashlytics wyświetli w konsoli Firebase alert „Brak pliku dSYM”. Jeśli zobaczysz ten alert, najpierw sprawdź, czy Xcode tworzy prawidłowy plik dSYM dla każdej kompilacji:

  1. Otwórz swój projekt w Xcode i wybierz plik projektu w Xcode Navigator.

  2. Wybierz główny cel kompilacji.

  3. Otwórz kartę Ustawienia kompilacji dla celu, a następnie kliknij Wszystkie.

  4. Wyszukaj: debug information format

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

  6. Ponownie skompiluj aplikację.

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

Zlokalizuj pliki dSYM na komputerze lokalnym

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

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 sprawdzić katalog Products, w którym znajduje się plik .app (domyślnie jest to katalog Derived Data). Jeśli aplikacja została udostępniona w wersji produkcyjnej, możesz również wyszukać plik dSYM w katalogu .xcarchive na dysku:Products

  1. W Xcode otwórz okno Organizer i 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 go ponownie z naciśniętym klawiszem Control, a następnie kliknij Pokaż zawartość pakietu.

  3. .xcarchive to katalog dSYMs, który zawiera pliki dSYM wygenerowane w ramach procesu archiwizowania Xcode.

Prześlij pliki dSYM

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

(Zalecane) Automatycznie przetwórz pliki dSYM i prześlij je

W przypadku pierwszej konfiguracji Crashlytics to prawdopodobnie automatyczne przesyłanie danych zostało skonfigurowane przez Ciebie. Jeśli jednak przesyłanie automatyczne się nie powiedzie, 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 dostępnej w konsoli opcji „Przeciągnij i upuść”, aby przesłać plik ZIP z plikami dSYM (otwórz konsolę Firebase > Crashlytics > kartę dSYMs).

  • Opcja 2. Użyj skryptu upload-symbols, który można 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 uzyskać uwagi dotyczące użytkowania i dodatkowe instrukcje dotyczące tego skryptu, uruchom polecenie upload-symbols z parametrem --help.