Android NDK
Důležité
31. března 2025 je naplánované vyřazení z provozu. I když můžete dál používat Visual Studio App Center, dokud ho úplně vyřadíte, existuje několik doporučených alternativ, na které můžete zvážit migraci.
Přečtěte si další informace o časových osách a alternativách podpory.
Android NDK umožňuje implementovat části aplikací pro Android pomocí C a C++. K získání platných trasování zásobníku v nativním kódu můžete použít klientskou knihovnu Google Breakpad pro aplikace pro Android. Trasování zásobníku může obsahovat pouze adresy paměti. Nezobrazují názvy tříd, metody, názvy souborů a čísla řádků, které jsou potřeba ke čtení a pochopení chybových ukončení. Aby se adresy paměti pro vaši aplikaci NDK pro Android přeložily, musíte nahrát symboly aplikace pro každý build.
Informace o tom, jak hlásit chybové ukončení sady NDK, najdete v dokumentaci k sadě Android SDK pro aplikace pro Android nebo v dokumentaci k sadě Unity SDK pro aplikace Unity.
Pokud chcete do App Center odesílat chybové ukončení breakpadu z jiných platforem, přečtěte si dokumentaci k nahrání vlastních chybových ukončení.
Nesymbolicated crashes
Nesymbolikovaná chybová ukončení se zobrazují v části Diagnostika app center, abyste si mohli zobrazit některé podrobnosti ještě před nahráním symbolů. Chybějící symboly z těchto chyb se zobrazí na kartě "nesymbolicated". Pokud se chybějící symboly nahrají, nesymbolicated crash group bude nahrazena symbolickou skupinou chybových ukončení.
Poznámka
App Center nepodporuje symboliku rámců, které pocházejí ze systémových knihoven. Vzhledem k vysoké fragmentaci systémových binárních souborů pro Android a další platformy – která se může lišit na libovolné kombinaci verzí zařízení a operačního systému – App Center neposkytuje symboly samotné pro systémové binární soubory a automaticky přeskočí rámce ze systémových binárních souborů v symbolické rovině.
Vygenerování souboru .zip k nahrání
Existují dva způsoby, jak App Center načíst symboly potřebné pro symboliku. App Center je může generovat z nativních binárních souborů používaných ve vašem projektu nebo můžete přímo nahrát symboly zarážky.
Možnost 1: Nahrání nativních binárních souborů
Vložte všechny soubory .so z adresáře projektu obj/local/$ABI/
do .zip souboru.
Možnost 2: Nahrání symbolů zarážky
- Výpis symbolů pomocí sady nástrojů Breakpad, jak je popsáno v dokumentaci k zarážce v části Získání symbolů ladění.
- Vytvořte symbols.zip soubor s následující strukturou:
Poznámka
Pokud nahráváte symboly z macOS, musíte symboly vyčistit od všech nadbytečných složek, například __MACOS se vygeneruje, a k jejich odstranění můžete použít 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
Nahrávání symbolů
Poznámka
Služba Sestavení a distribuce App Center může automaticky předávat symboly službě Diagnostika. Pokud k sestavení a automatické distribuci aplikace koncovým uživatelům používáte App Center, nemusíte soubory symbolů získávat a nahrávat ručně, jak je podrobně popsáno v následujících krocích.
Portál App Center
- Přihlaste se do App Center a vyberte svou aplikaci.
- V nabídce vlevo přejděte do části Diagnostika a pak Do části Problémy.
- Pokud vaše aplikace ještě nenahlásila žádné chybové ukončení, budete muset k nahrání symbolů zarážky použít rozhraní API nebo rozhraní příkazového řádku.
- Pokud už vaše aplikace nahlásila chybové ukončení, která potřebují symboly, podívejte se na kartu Unsymbolicated a měla by existovat skupina verzí s chybějícími symboly. Kliknutím na ni zobrazte nabídku pro nahrání souboru.
- Jakmile app Center indexuje symboly, budou pro vás symbolické chybové ukončení.
App Center API
Proces nahrávání symbolů prostřednictvím rozhraní API zahrnuje řadu tří volání rozhraní API: jedno pro přidělení místa na back-endu, jedno pro nahrání souboru a jedno pro aktualizaci stavu nahrávání. Tělo prvního volání rozhraní API by mělo být nastavené symbol_type
na Breakpad
.
- Aktivujte
POST
požadavek na rozhraní API symbol_uploads. Toto volání přidělí místo na našem back-endu pro váš soubor a vrátísymbol_upload_id
vlastnost aupload_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
Pomocí vlastnosti vrácené z prvního kroku vytvořte požadavek s hlavičkouPUT
a"x-ms-blob-type: BlockBlob"
zadejte umístění souboru na disku. Toto volání soubor nahraje do našich účtů back-endového úložiště. Přečtěte si další informace o hlavičkách požadavků put blob .
curl -X PUT '{upload_url}' \
-H 'x-ms-blob-type: BlockBlob' \
--upload-file '{path to file}'
- Vytvořte
PATCH
požadavek na rozhraní API symbol_uploads pomocísymbol_upload_id
vlastnosti vrácené z prvního kroku. V textu požadavku zadejte, jestli chcete nastavit stav nahrávání nacommitted
(úspěšně dokončeno) procesu nahrávání, neboaborted
(neúspěšně dokončeno).
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" }'
Poznámka
Rozhraní API pro nahrávání symbolů nefunguje pro soubory, které jsou větší než 256 MB. K nahrání těchto souborů použijte rozhraní příkazového řádku App Center. Rozhraní příkazového řádku App Center si můžete nainstalovat podle pokynů v úložišti Rozhraní příkazového řádku app center.
Rozhraní příkazového řádku App Center
K nahrání souborů symbolů můžete použít také rozhraní příkazového řádku:
appcenter crashes upload-symbols --breakpad {symbols file}
Ignorování symbolů
Pokud App Center neobsahuje všechny soubory symbolů, které by plně symbolizovaly zprávy o chybách, jsou chybové ukončení uvedené na kartě Nesymbolicated . Požadované symboly se nahrají z této stránky, pokud k nim máte přístup.
Pokud symboly nemůžete nahrát, můžete je označit jako Ignorované tak, že vyberete řádky v tabulce a kliknete na tlačítko Ignorovat verze . Toto tlačítko říká App Center, aby zpracovala chybové ukončení a symbolizovala je co nejúplněji se symboly, které jsou v souboru. Po dokončení zpracování se zobrazí na kartě Chybové ukončení částečně symbolicky. Nová chybová ukončení, která také závisejí na stejných ID symbolů označených jako ignorovaná, obcházejí kartu Unsymbolicated , když přicházejí a procházejí systémem.