| 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 dla człowieka. Zazwyczaj konfigurujesz to zachowanie podczas wstępnej konfiguracji Crashlytics w aplikacji, w szczególności przez dodanie skryptu uruchamiającego 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 udać. W tym przewodniku znajdziesz kilka sposobów rozwiązywania problemów, gdy 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 uruchamiający, który automatycznie przetwarza pliki dSYM i przesyła je.
Sprawdź, czy konfiguracja skryptu uruchamiającego Crashlytics jest
zgodna z nowymi wymaganiami, które zaczęły obowiązywać w Xcode 15. Jeśli konfiguracja nie jest aktualna, może pojawić się ten błąd:
error: Info.plist Error Unable to process Info.plist at path ....
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ę:
Kliknij kartę Build Phases (Fazy kompilacji), a następnie rozwiń sekcję Run Script (Uruchom skrypt).
W sekcji Input Files (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
Jeśli w ustawieniach kompilacji projektu masz$(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)
ENABLE_USER_SCRIPT_SANDBOXING=YESiENABLE_DEBUG_DYLIB=YES, dodaj te elementy:${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}.debug.dylib
Sprawdź, czy Xcode generuje pliki dSYM
Najczęściej pliki dSYM znikają, ponieważ Xcode ich nie generuje. Gdy przesyłanie się nie powiedzie, Crashlytics wyświetla alert „Brakujący plik dSYM” w konsoli Firebase. Jeśli zobaczysz ten alert, najpierw sprawdź, czy Xcode generuje prawidłowy plik dSYM dla każdej kompilacji:
Otwórz projekt w Xcode, a następnie wybierz plik projektu w nawigatorze Xcode.
Wybierz główny cel kompilacji.
Otwórz kartę Build Settings (Ustawienia kompilacji) celu, a następnie kliknij All (Wszystkie).
Wyszukaj
debug information format.Ustaw Debug Information Format (Format informacji debugowania) na DWARF with dSYM File (DWARF z plikiem dSYM) dla wszystkich typów kompilacji.
Ponownie skompiluj aplikację.
Raporty o awariach powinny teraz pojawiać się na panelu Crashlytics dashboard. Jeśli problem będzie się powtarzał lub wystąpią inne błędy, spróbuj znaleźć pliki dSYM i przesłać je do Crashlytics ręcznie.
Znajdź pliki dSYM na komputerze lokalnym
Uruchom to polecenie, aby wyświetlić wszystkie identyfikatory UUID plików dSYM na komputerze i wyszukać brakujący plik 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 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ć jej pliku dSYM w katalogu .xcarchive na dysku:
W Xcode otwórz okno Organizer (Organizator), a następnie wybierz aplikację z listy. Xcode wyświetli listę archiwów projektu.
Kliknij archiwum z wciśniętym klawiszem Control, aby wyświetlić je w Finderze. Ponownie kliknij je z wciśniętym klawiszem Control, a następnie kliknij Show Package Contents (Pokaż zawartość pakietu).
W katalogu
.xcarchiveznajduje 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 ich
Podczas wstępnej konfiguracji Crashlytics najprawdopodobniej skonfigurowano to automatyczne przesyłanie plików dSYM w aplikacji. Jeśli jednak automatyczne przesyłanie się nie powiedzie, sprawdź, czy konfiguracja jest prawidłowa.
Ręczne przesyłanie plików dSYM
Jeśli automatyczne przesyłanie się nie powiedzie, możesz ręcznie przesłać pliki dSYM, korzystając z jednej z tych opcji.
Opcja 1: użyj interfejsu „Przeciągnij i upuść” w konsoli Firebase, aby przesłać plik ZIP zawierający pliki dSYM (otwórz panel DevOps & Engagement > Crashlytics > dSYMs).
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ć skryptupload-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-symbolsz parametrem--help.