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 uruchamianego 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
Konfigurując Crashlytics w aplikacji, skonfigurował(a) uruchomiony skrypt 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 wykonano
konfiguracja:
Kliknij kartę Etapy kompilacji, a następnie rozwiń sekcję Uruchamianie skryptu.
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:
Otwórz swój projekt w Xcode i wybierz jego plik w Xcode Nawigacja.
Wybierz główny cel kompilacji.
Otwórz kartę Ustawienia kompilacji dla celu, a następnie kliknij Wszystkie.
Wyszukaj:
debug information format
Ustaw Format informacji debugowania na DWARF z plikiem dSYM dla wszystkich typów kompilacji.
Ponownie skompiluj aplikację.
Raporty o awariach powinny pojawić się w Panel Crashlytics. Jeśli problem będzie się powtarzał lub wystąpią inne błędy, spróbuj zlokalizować pliki dSYM i przesyłając je ręcznie do usługi 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 usługi 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:
W Xcode otwórz okno Organizer i wybierz aplikację z z listy. Xcode wyświetla listę archiwów projektu.
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.
.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 usługi Crashlytics najprawdopodobniej została ona skonfigurowana automatycznego przesyłania aplikacji. Jeśli jednak automatyczne przesyłanie jest nie uda się, sprawdź, czy konfiguracja jest prawidłowa.
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
.