Domyślnie Firebase Crashlytics automatycznie przetwarza pliki symboli debugowania (dSYM), aby dostarczyć Ci oczyszczone i czytelne dla człowieka raporty o awariach. Zwykle konfigurujesz to zachowanie podczas początkowej konfiguracji Crashlytics w aplikacji, w szczególności dodając skrypt uruchamiający , który automatycznie przesyła pliki dSYM podczas fazy kompilacji aplikacji.
Niestety, istnieje kilka przypadków, które mogą spowodować niepowodzenie automatycznego przesyłania plików dSYM. W tym przewodniku przedstawiono sposoby rozwiązywania problemów, gdy Crashlytics nie może zlokalizować plików dSYM Twojej aplikacji.
Upewnij się, że Xcode może automatycznie przetwarzać dSYM i przesyłać pliki
Konfigurując Crashlytics w aplikacji, skonfigurowałeś skrypt uruchamiający , który automatycznie przetwarza pliki dSYM i przesyła pliki.
Upewnij się, że konfiguracja skryptu uruchamiającego Crashlytics jest aktualna z nowymi wymaganiami, które rozpoczęły się od Xcode 15. Jeśli konfiguracja nie jest aktualna, może pojawić się następujący błąd:
error: Info.plist Error Unable to process Info.plist at path ...
.
W szczególności 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ę Fazy kompilacji , a następnie rozwiń sekcję Uruchom skrypt .
W sekcji Pliki wejściowe upewnij się, że masz ścieżki lokalizacji następujących 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 dSYM
Najczęściej pliki dSYM znikają, ponieważ Xcode po prostu ich nie tworzy. Gdy przesyłanie nie powiedzie się, Crashlytics wyświetla alert „Brak dSYM” w konsoli Firebase. Jeśli otrzymasz ten alert, najpierw sprawdź, czy Xcode generuje poprawny dSYM dla każdej kompilacji:
Otwórz swój projekt w Xcode, a następnie wybierz plik projektu w Xcode Navigator.
Wybierz główny cel kompilacji.
Otwórz kartę Ustawienia kompilacji obiektu docelowego, a następnie kliknij opcję Wszystkie .
Wyszukaj
debug information format
.Ustaw format informacji debugowania na DWARF z plikiem dSYM dla wszystkich typów kompilacji.
Odbuduj swoją aplikację.
Twoje raporty o awariach powinny teraz pojawić się na pulpicie nawigacyjnym Crashlytics . Jeśli problem będzie się powtarzał lub napotkasz inne błędy, spróbuj zlokalizować swoje pliki dSYM i ręcznie przesłać je do Crashlytics .
Znajdź swoje dSYM-y na komputerze lokalnym
Uruchom następujące polecenie, aby wyświetlić wszystkie identyfikatory UUID dSYM na swoim komputerze i wyszukać brakujący 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 zajrzeć do katalogu Products
, w którym znajduje się Twoja .app
(domyślnie katalog Products
znajduje się w Derived Data
). Jeśli Twoja aplikacja zostanie wypuszczona do wersji produkcyjnej, możesz także poszukać jej dSYM w katalogu .xcarchive
na dysku:
W Xcode otwórz okno Organizatora , a następnie wybierz aplikację z listy. Xcode wyświetla listę archiwów Twojego projektu.
Kliknij archiwum, trzymając naciśnięty klawisz Control, aby wyświetlić je w Finderze. Kliknij go ponownie, trzymając naciśnięty klawisz Control, a następnie kliknij opcję Pokaż zawartość pakietu .
W
.xcarchive
znajduje się katalog dSYMs, który zawiera pliki dSYM wygenerowane w ramach procesu archiwizacji Xcode.
Prześlij swoje pliki dSYM
Crashlytics obsługuje wiele sposobów przesyłania plików dSYM, automatycznie lub ręcznie .
(Zalecane) Automatycznie przetwarzaj swoje dSYM i przesyłaj pliki
Podczas początkowej konfiguracji Crashlytics najprawdopodobniej skonfigurowałeś automatyczne przesyłanie dla swojej aplikacji. Jeśli jednak automatyczne przesyłanie nie powiedzie się, sprawdź, czy konfiguracja jest prawidłowa .
Ręcznie prześlij pliki dSYM
Jeśli automatyczne przesyłanie nie powiedzie się, możesz ręcznie przesłać pliki dSYM, korzystając z jednej z poniższych opcji.
Opcja 1 : Użyj opcji „Przeciągnij i upuść” w konsoli, aby przesłać plik ZIP zawierający pliki dSYM (przejdź do konsoli Firebase > Crashlytics > karta 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ć skryptupload-symbols
, użyj jednej z następujących opcji:Opcja A : Dołącz następujący 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ć uwagi dotyczące użycia i dodatkowe instrukcje dotyczące tego skryptu, uruchom
upload-symbols
z parametrem--help
.