Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Program Visual Studio App Center został wycofany 31 marca 2025 r. z wyjątkiem funkcji analizy i diagnostyki, które będą nadal obsługiwane do 30 czerwca 2026 r. Dowiedz się więcej.
Zestaw Android NDK umożliwia implementowanie części aplikacji systemu Android przy użyciu języków C i C++. Możesz użyć biblioteki klienta Google Breakpad dla aplikacji na Androida, aby otrzymywać prawidłowe ślady stosu w kodzie natywnym. Ślady stosu mogą zawierać tylko adresy pamięci. Nie pokazują nazw klas, metod, nazw plików i numerów wierszy, które są potrzebne do odczytania i zrozumienia awarii. Aby uzyskać przetłumaczone adresy pamięci dla aplikacji NDK systemu Android, należy przekazać symbole aplikacji dla każdej kompilacji.
Aby dowiedzieć się, jak zgłaszać awarie zestawu NDK, zapoznaj się z dokumentacją zestawu Android SDK dla aplikacji systemu Android lub dokumentacją zestawu Unity SDK dla aplikacji aparatu Unity.
Jeśli chcesz wysłać awarie Breakpad z innych platform do App Center, zobacz dokumentację wysyłania niestandardowych zgłoszeń awarii.
Niesymbolicowane awarie
Niezasymbolikowane awarie są wyświetlane w sekcji Diagnostyka App Center, dzięki czemu można zobaczyć pewne szczegóły jeszcze przed przesłaniem symboli. Brakujące symbole z tych awarii zostaną wyświetlone na karcie "niesymbolizowane". Jeśli brakujące symbole zostaną przesłane, grupa awarii niesymbolizowanych zostanie zastąpiona przez grupę awarii symbolizowanych.
Uwaga / Notatka
Usługa App Center nie obsługuje symbolizacji ramek pochodzących z bibliotek systemowych. Biorąc pod uwagę wysoką fragmentację plików binarnych systemowych dla systemu Android i innych platform — które mogą się różnić w przypadku każdej kombinacji wersji urządzenia/systemu operacyjnego — usługa App Center nie udostępnia symboli dla plików binarnych systemowych i automatycznie pomija klatki pochodzące z plików binarnych systemowych podczas symbolizacji.
Wygeneruj plik .zip do przesłania
Istnieją dwa sposoby, aby Centrum Aplikacji pobrało symbole niezbędne do procesu symbolizacji. Usługa App Center może wygenerować je na podstawie natywnych plików binarnych używanych w projekcie lub możesz przesłać symbole Breakpad bezpośrednio.
Opcja 1. Przekazywanie natywnych plików binarnych
Umieść wszystkie pliki .so z katalogu projektu obj/local/$ABI/
do pliku .zip.
Opcja 2: Wysyłanie symboli Breakpad
- Zrzuć symbole przy użyciu łańcucha narzędzi Breakpad zgodnie z opisem w dokumentacji breakpad w sekcji "Pobieranie symboli debugowania".
- Utwórz plik symbols.zip o następującej strukturze:
Uwaga / Notatka
Jeśli przekazujesz symbole z systemu macOS, musisz wyczyścić symbole ze zbędnych folderów, np. __MACOS może zostać wygenerowany, a aby go usunąć, można użyć polecenia zip -d <symbols.zip> __MACOSX/\*
.
$ unzip -l symbols.zip
Archive: symbols.zip
Length Date Time Name
-------- ---- ---- ----
0 07-22-13 15:07 symbols/
0 07-22-13 15:07 symbols/libnative.so/
0 07-22-13 15:07 symbols/libnative.so/EAC901FB6DDCCE8AED89E1A8E4A58360/
12468 07-22-13 15:07 symbols/libnative.so/EAC901FB6DDCCE8AED89E1A8E4A58360/libnative.so.sym
0 07-22-13 15:07 symbols/libnative.so/FDC5C9E715C4F16408C0B78F95855BF0/
12467 07-22-13 15:07 symbols/libnative.so/FDC5C9E715C4F16408C0B78F95855BF0/libnative.so.sym
-------- -------
24935 6 files
Przesyłanie symboli
Uwaga / Notatka
Usługa kompilacji i dystrybucji centrum aplikacji może automatycznie przekazywać symbole do usługi diagnostyki. Jeśli używasz usługi App Center do kompilowania i automatycznego dystrybuowania aplikacji do użytkowników końcowych, nie musisz ręcznie uzyskiwać i przekazywać plików symboli, jak opisano w poniższych krokach.
Portal Centrum aplikacji
- Zaloguj się do Centrum aplikacji i wybierz aplikację.
- W menu po lewej stronie przejdź do sekcji Diagnostyka , a następnie pozycję Problemy.
- Jeśli aplikacja nie zgłosiła jeszcze żadnych awarii, musisz użyć interfejsu API lub interfejsu wiersza polecenia do przekazania symboli breakpad.
- Jeśli aplikacja zgłosiła już awarie, które wymagają symboli, sprawdź kartę Unsymbolicated. Powinna się tam pojawić grupa wersji z brakującymi symbolami, kliknij na nią, aby wyświetlić menu umożliwiające przesłanie pliku.
- Gdy symbole zostaną zaindeksowane przez App Center, awarie zostaną zsymbolizowane dla Ciebie.
Centrum aplikacji API
Proces przekazywania symboli za pośrednictwem interfejsu API obejmuje serię trzech wywołań interfejsu API: jeden do przydzielenia miejsca na zapleczu, jeden do przekazania pliku i jeden w celu zaktualizowania stanu przekazywania. Treść pierwszego wywołania interfejsu API powinna ustawić symbol_type
na Breakpad
.
- Wyzwalanie
POST
żądania do interfejsu API symbol_uploads. To wywołanie przydziela miejsce na naszym zapleczu dla twojego pliku i zwraca właściwośćsymbol_upload_id
oraz właściwośćupload_url
.
curl -X POST 'https://api.appcenter.ms/v0.1/apps/{owner_name}/{app_name}/symbol_uploads' \
-H 'accept: application/json' \
-H 'X-API-Token: {API TOKEN}' \
-H 'Content-Type: application/json' \
-d '{JSON BODY}'
-
upload_url
Używając właściwości zwróconej w pierwszym kroku, utwórzPUT
żądanie z nagłówkiem :"x-ms-blob-type: BlockBlob"
i podaj lokalizację pliku na dysku. To wywołanie przekazuje plik do kont magazynu zaplecza. Dowiedz się więcej o nagłówkach żądań PUT blob.
curl -X PUT '{upload_url}' \
-H 'x-ms-blob-type: BlockBlob' \
--upload-file '{path to file}'
-
PATCH
Prześlij żądanie do interfejsu API symbol_uploads przy użyciusymbol_upload_id
właściwości zwróconej w pierwszym kroku. W treści żądania określ, czy chcesz ustawić stan procesu przekazywania nacommitted
(pomyślnie ukończony), czyaborted
(zakończony niepowodzeniem).
curl -X PATCH 'https://api.appcenter.ms/v0.1/apps/{owner_name}/{app_name}/symbol_uploads/{symbol_upload_id}' \
-H 'accept: application/json' \
-H 'X-API-Token: {API TOKEN}' \
-H 'Content-Type: application/json' \
-d '{ "status": "committed" }'
Uwaga / Notatka
Interfejs API przekazywania symboli nie działa w przypadku plików większych niż 256 MB. Użyj App Center CLI, aby przekazać te pliki. Interfejs wiersza polecenia centrum aplikacji można zainstalować, postępując zgodnie z instrukcjami w repozytorium interfejsu wiersza polecenia centrum aplikacji.
App Center CLI
Możesz również użyć interfejsu wiersza polecenia, aby przekazać pliki symboli:
appcenter crashes upload-symbols --breakpad {symbols file}
Ignorowanie symboli
Gdy App Center nie ma wszystkich plików symboli, aby całkowicie zsymbolizować raporty awarii, awarie są wyświetlane na karcie Unsymbolicated. Wymagane symbole są przesyłane z tej strony, jeśli masz do nich dostęp.
Jeśli nie możesz załadować symboli, możesz oznaczyć je jako ignorowane wybierając wiersze w tabeli i klikając przycisk Ignoruj wersje. Ten przycisk poleca App Center przetwarzanie awarii i jak najdokładniejsze symbolizowanie ich przy użyciu dostępnych symboli. Po zakończeniu przetwarzania zostaną one wyświetlone na karcie Awarie częściowo symboliczne. Nowe awarie, które również zależą od tych samych identyfikatorów symboli oznaczonych jako ignorowane, pominą kartę Unsymbolicated w miarę ich przetwarzania w systemie.