| Wybierz platformę: | iOS+ Android Flutter Unity |
Domyślnie Firebase Crashlytics automatycznie przetwarza pliki symboli debugowania (dSYM), aby dostarczać raporty o awariach z usuniętym zaciemnieniem kodu, zrozumiałe dla człowieka. Zwykle konfiguruje się to podczas początkowej konfiguracji Crashlytics w aplikacji, a konkretnie przez dodanie skryptu uruchamiania, który automatycznie przesyła pliki dSYM podczas fazy kompilacji aplikacji.
Niestety w niektórych 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.
Upewnij się, że Xcode może automatycznie przetwarzać dSYM i przesyłać pliki
Podczas konfigurowania Crashlytics w aplikacji skonfigurowano skrypt uruchamiania, aby automatycznie przetwarzał pliki dSYM i je przesyłał.
Upewnij się, że konfiguracja skryptu uruchamiania Crashlytics jest zgodna z nowymi wymaganiami, które zaczęły obowiązywać od 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 ....
W szczególności Xcode 15 i nowsze wersje wymagają podania bardziej kompletnego zestawu lokalizacji plików. W przypadku skryptu uruchamiania Crashlytics (firebase-ios-sdk/Crashlytics/run) upewnij się, że masz tę konfigurację:
Kliknij kartę Build Phases (Fazy kompilacji), a potem rozwiń sekcję Run Script (Uruchom skrypt).
W sekcji 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, uwzględnij te elementy:${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}.debug.dylib
Sprawdzanie, czy Xcode generuje pliki dSYM
Najczęściej pliki dSYM giną, ponieważ Xcode ich nie generuje. Jeśli przesyłanie się nie powiedzie, Crashlytics wyświetli alert „Brak dSYM” w konsoli Firebase. Jeśli otrzymasz 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 formatUstaw Format informacji na potrzeby debugowania na DWARF z plikiem dSYM dla wszystkich typów kompilacji.
Przebuduj aplikację.
Raporty o awariach powinny teraz pojawiać się w panelu Crashlytics. Jeśli problem będzie się powtarzał lub wystąpią inne błędy, spróbuj znaleźć pliki dSYM i przesłać je ręcznie do usługi Crashlytics.
Znajdowanie plików 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 zajrzeć do 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 i wybierz aplikację z listy. Xcode wyświetli listę archiwów projektu.
Kliknij archiwum, przytrzymując klawisz Control, aby wyświetlić je w Finderze. Kliknij go ponownie, przytrzymując klawisz Control, a następnie kliknij Pokaż zawartość pakietu.
W folderze
.xcarchiveznajduje się katalog dSYMs, który zawiera pliki dSYM wygenerowane w ramach procesu archiwizacji Xcode.
Przesyłanie plików 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 plików
Podczas wstępnej konfiguracji Crashlytics prawdopodobnie skonfigurowano automatyczne przesyłanie dla aplikacji. Jeśli jednak automatyczne przesyłanie nie działa, 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 poniższych opcji.
Opcja 1. Użyj interfejsu „przeciągnij i upuść” w konsoli Firebase, aby przesłać plik ZIP zawierający pliki dSYM (otwórz DevOps i zaangażowanie > panel Crashlytics > karta Pliki 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 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.