Uzyskiwanie czytelnych raportów o awariach w panelu Crashlytics (Unity)

Wybierz platformę: iOS+ Android Flutter Unity


iOS+ (platformy Apple)

W przypadku aplikacji na platformy Apple korzystających z pakietu SDK Unity w wersji 8.2.0 lub nowszej wtyczka Firebase Unity Editor automatycznie konfiguruje projekt Xcode do przesyłania symboli.Crashlytics Pobierz najnowszą wersję.

Android

W przypadku aplikacji na Androida pakiet SDK Unity w wersji 8.6.1 lub nowszej automatycznie zawiera raportowanie awarii NDK, co umożliwia Crashlytics automatyczne raportowanie awarii Unity IL2CPP na Androidzie.Crashlytics Aby jednak wyświetlać w panelu Crashlytics zrzuty stosu z symbolami w przypadku awarii biblioteki natywnej, musisz przesłać informacje o symbolach podczas kompilacji za pomocą interfejsu wiersza poleceń Firebase.

  1. Upewnij się, że używasz pakietu SDK Unity w wersji 8.6.1 lub nowszej.Crashlytics Pobierz najnowszą wersję.

  2. Skonfiguruj środowisko i projekt do przesyłania symboli:

    1. Postępuj zgodnie z instrukcjami, aby zainstalować Firebase interfejs wiersza poleceń.

      Jeśli interfejs wiersza poleceń jest już zainstalowany, upewnij się, że zaktualizowano go do najnowszej wersji.

    2. (tylko w przypadku aplikacji korzystających z interfejsu API Androida na poziomie 30 lub wyższym) Zaktualizuj szablon AndroidManifest.xml aplikacji, aby wyłączyć oznaczanie wskaźników:

      1. Zaznacz pole Android Player Settings > Publishing Settings > Build > Custom Main Manifest (Ustawienia odtwarzacza Androida > Ustawienia publikowania > Kompilacja > Niestandardowy główny manifest).

      2. Otwórz szablon manifestu znajdujący się w Assets/Plugins/Android/AndroidManifest.xml.

      3. (tylko w przypadku aplikacji korzystających z pakietu SDK w wersji wcześniejszej niż 8.8.0) Dodaj do tagu aplikacji ten atrybut: <application android:allowNativeHeapPointerTagging="false" ... />

  3. Skompiluj projekt i prześlij symbole.

    Wykonaj te czynności za każdym razem, gdy tworzysz kompilację do publikacji lub inną kompilację, w której chcesz wyświetlać zrzuty stosu z symbolami w panelu Crashlytics Crashlytics.

    1. W oknie Ustawienia kompilacji wykonaj jedną z tych czynności:

      • wyeksportuj projekt do projektu Android Studio, aby go skompilować;

      • skompiluj plik APK bezpośrednio w edytorze Unity.
        Przed kompilacją upewnij się, że w oknie Ustawienia kompilacji zaznaczone jest pole wyboru Utwórz plik symbols.zip.

    2. Po zakończeniu kompilacji wygeneruj plik symboli zgodny z Crashlytics i prześlij go na serwery Firebase, uruchamiając to polecenie interfejsu wiersza poleceń Firebase:

      firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
      • FIREBASE_APP_ID: identyfikator aplikacji Firebase na Androida (nie nazwa pakietu). Przykładowy identyfikator aplikacji Firebase na Androida: 1:567383003300:android:17104a2ced0c9b9b

      • PATH/TO/SYMBOLS: ścieżka do pliku symboli wygenerowanego przez interfejs wiersza poleceń.

        • Wyeksportowano do projektu Android Studio — PATH/TO/SYMBOLS to katalog unityLibrary/symbols, który jest tworzony w katalogu głównym wyeksportowanego projektu po skompilowaniu aplikacji za pomocą Gradle lub Android Studio.

        • Skompilowano plik APK bezpośrednio w Unity – PATH/TO/SYMBOLS to ścieżka do spakowanego pliku symboli wygenerowanego w katalogu głównym projektu po zakończeniu kompilacji (np.: myproject/myapp-1.0-v100.symbols.zip).

      Wyświetl opcje zaawansowane używania Firebase polecenia interfejsu wiersza poleceń do generowania i przesyłania pliku symboli

      Flaga Opis
      --generator=csym

      Zamiast domyślnego generatora Breakpad używa starszego generatora pliku symboli cSYM.

      Nie zalecamy używania. Zalecamy używanie domyślnego Breakpad symbol file generator.

      --generator=breakpad

      Używa generatora pliku symboli Breakpad.

      Pamiętaj, że domyślnym generatorem pliku symboli jest Breakpad. Używaj tej flagi tylko wtedy, gdy w konfiguracji kompilacji dodasz symbolGenerator { csym() } i chcesz zastąpić ją Breakpadem.

      --dry-run

      Generuje pliki symboli, ale ich nie przesyła.

      Ta flaga jest przydatna, jeśli chcesz sprawdzić zawartość plików, które są wysyłane.

      --debug Podaje dodatkowe informacje na potrzeby debugowania.