| 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. Zwykle 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 je przesyłać
Podczas konfigurowania Crashlytics w aplikacji skonfigurowano skrypt uruchamiający, który automatycznie przetwarza pliki dSYM i je przesyła.
Upewnij się, że 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 Crashlyticsrun script
(firebase-ios-sdk/Crashlytics/run) upewnij się, że masz skonfigurowane te ustawienia:
setup:
Kliknij kartę Build Phases (Fazy kompilacji), a następnie rozwiń sekcję Run Script (Uruchom skrypt).
W sekcji Input Files (Pliki wejściowe) upewnij się, że 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 ustawienia:${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świetli w konsoli Firebase alert „Brak pliku dSYM”. 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 Crashlytics panelu. 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 (Produkty), w którym znajduje się plik .app (domyślnie katalog Products znajduje się w katalogu Derived Data (Dane pochodne)). 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 ich przesyłanie
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 opcji „Przeciągnij i upuść” w konsoli, aby przesłać plik ZIP zawierający pliki dSYM (otwórz Firebase konsolę > Crashlytics > dSYMs kartę).
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
Uwagi dotyczące użycia i dodatkowe instrukcje dotyczące tego skryptu znajdziesz, uruchamiając
upload-symbolsz parametrem--help.