Otrzymuj czytelne raporty o awariach w panelu Crashlytics

Domyślnie Firebase Crashlytics automatycznie przetwarza symbol debugowania (dSYM), które dostarczają rozjaśnione i zrozumiałe raporty o awariach. Ty zwykle konfigurują to zachowanie podczas początkowej konfiguracji Crashlytics w z aplikacji, zwłaszcza dodanie uruchomionego skryptu który automatycznie przesyła pliki dSYM na etapie kompilacji aplikacji.

Niestety jest kilka sytuacji, które mogą powodować występowanie automatycznych plików dSYM. nie uda się ich przesłać. 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 skonfigurowanie uruchamianego skryptu 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. Aby uruchomić skrypt Crashlytics (firebase-ios-sdk/Crashlytics/run), upewnij się, że masz konfiguracja:

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

  2. Upewnij się, że w sekcji Pliki wejściowe masz podane ścieżki lokalizacji. z 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 po prostu nie generuje . Jeśli przesyłanie się nie uda, Crashlytics wyświetli komunikat „Brak pliku dSYM”. alert w w konsoli Firebase. Jeśli otrzymasz taki alert, najpierw sprawdź, czy Xcode generowanie prawidłowego pliku dSYM dla każdej kompilacji:

  1. Otwórz swój projekt w Xcode i wybierz jego plik w Xcode Nawigacja.

  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 dla wszystkich typów kompilacji.

  6. Ponownie skompiluj aplikację.

Raporty o awariach powinny pojawić się w Panel Crashytics. Jeśli problem będzie się powtarzał lub wystąpią inne błędy, spróbuj zlokalizować pliki dSYM i ręcznie przesyłając je do Crashlytics.

Zlokalizuj pliki 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 i wybierz aplikację z 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. .xcarchive to katalog dSYM, który zawiera pliki dSYM wygenerowane jako jest częścią procesu archiwizacji 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

Podczas początkowej konfiguracji Crashlytics jest najprawdopodobniej to skonfigurowane ustawienie automatycznego przesyłania aplikacji. Jeśli jednak automatyczne przesyłanie jest nie udało się, sprawdź, czy konfiguracja jest poprawna.

Ręczne przesyłanie plików dSYM

Jeśli automatyczne przesyłanie się nie udaje, możesz przesłać pliki dSYM ręcznie za pomocą jedną z tych opcji.

  • 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ć 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 na temat użytkowania i dodatkowe instrukcje dotyczące tego skryptu, uruchom polecenie upload-symbols z parametrem --help.