Deobfuskace Androidu
Důležité
Visual Studio App Center je naplánované k vyřazení na 31. března 2025. I když můžete Visual Studio App Center dál používat, dokud ho úplně nevyřadíte, existuje několik doporučených alternativ, na které můžete migraci zvážit.
Přečtěte si další informace o časových osách a alternativách podpory.
ProGuard, DexGuard a R8 jsou nástroje pro optimalizaci a obfuscaci kódu aplikací pro Android. Odebere nepoužívaný kód, přejmenuje třídy, pole a metody se sémanticky nejasnými názvy, takže základ kódu bude menší a bude obtížnější provádět zpětnou analýzu. Pokud chcete v aplikaci pro Android povolit obfuskaci pomocí ProGuardu nebo R8, postupujte podle oficiální dokumentace pro vývojáře pro Android.
Pokud máte v aplikaci pro Android povolený ProGuard, DexGuard nebo R8, musí být trasování zásobníku deobfuskované. Když nahrajete mapping.txt
soubor vytvořený v každém buildu, App Center automaticky deobfuscuje trasování zásobníku pro aplikace Java, Kotlin a React Native Android. Tento soubor mapuje původní názvy tříd, metod a polí na obfuskované názvy, aby trasování zásobníku bylo čitelné.
Služba sestavení a distribuce app center může automaticky generovat soubory mapování a nahrávat je do diagnostické služby. Pokud k sestavení a automatické distribuci aplikace koncovým uživatelům používáte App Center, nemusíte soubory mapování získávat a nahrávat ručně, jak je podrobně popsáno v následujících krocích.
Nahrání souboru mapping.txt
Portál App Center
mapping.txt
Stažení souboru z adresáře sestavení modulu vaší aplikace- Přihlaste se k App Center a vyberte aplikaci.
- V nabídce vlevo přejděte do části Diagnostika .
- Vybrat mapování
- Klikněte na tlačítko Nahrát mapování v pravém horním rohu.
- Vyplňte Název verze a Kód verze (aby mapování fungovalo pro konkrétní sestavení, musí se shodovat s konfigurací Gradle daného buildu).
mapping.txt
Nahrajte soubor z adresáře sestavení modulu vaší aplikace.- Klikněte na tlačítko Uložit.
App Center API
Proces nahrávání souborů mapování 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 AndroidProguard
vlastnosti a version
, build
které odpovídají kódu verze a názvu verze a file_name
také vlastnosti .
POST
Aktivace požadavku 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}'
- Pomocí vlastnosti vrácené
upload_url
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í nahraje soubor 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é v prvním kroku. V textu požadavku určete, jestli chcete nastavit stav nahrávání nacommitted
(úspěšně dokončeno) proces 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 u souborů větších než 256 MB. K nahrání těchto souborů použijte rozhraní příkazového řádku app center. App Center CLI můžete nainstalovat podle pokynů v našem úložišti App Center CLI.
Rozhraní příkazového řádku app center
K nahrání souborů mapování můžete použít také rozhraní příkazového řádku:
appcenter crashes upload-mappings --mapping {mapping file} --version-name {version name} --version-code {version code}
Poznámka
App Center nemůže zkontrolovat, jestli jste nahráli správný mapping.txt
soubor. Doporučujeme nahrát soubor přímo po vytvoření souboru .apk nebo ho odeslat do úložiště kódu, pokud ho chcete nahrát později.
Přeposlání mapování ze sestavení v App Center
Pokud je sestavení nakonfigurované tak, aby vytvořilo mapping.txt
soubor, vytvoří sestavení App Center tento soubor jako dostupný soubor ke stažení. Automatická distribuce sestavení nebo ruční distribuce později předá mapping.txt
soubor diagnostice, aby se deobfuscate příchozí zprávy o chybách. Po distribuci sestavení není nutné soubor ručně nahrávat mapping.txt
.
Odstranění souboru mapování
- Vytvořte
GET
požadavek na rozhraní API symbols_list. Tím se načtou ID souborů mapování, které jste nahráli. - Vytvořte
DELETE
požadavek na rozhraní API symbols_upload s ID souboru mapování. Tím se odstraní zadaný soubor mapování.