Symbolika iOS
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.
Zprávy o chybách macOS, tvOS a iOS zobrazují trasování zásobníku pro všechna spuštěná vlákna vaší aplikace v době, kdy došlo k chybovému ukončení. Trasování zásobníku obsahuje pouze adresy paměti; nejedná se o názvy tříd, metody, názvy souborů ani čísla řádků potřebná k pochopení chybových ukončení.
Pokud chcete přeložit adresy paměti, musíte nahrát balíček dSYM do App Center, který obsahuje všechny informace potřebné pro symboliku. Další informace o symbolizaci najdete v oficiální dokumentaci společnosti Apple pro vývojáře.
Služba sestavení a distribuce App Center může automaticky vygenerovat platný soubor dSYM a zdrojový mapový .zip
soubor a nahrát ho do diagnostické služby. 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ě.
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í.
.dSYM
Vyhledání balíčku
- V Xcode otevřete nabídku Okno a pak vyberte Organizátor.
- Vyberte kartu Archivy .
- Vyberte aplikaci na levém bočním panelu.
- Klikněte pravým tlačítkem na nejnovější archiv a vyberte Zobrazit ve Finderu.
- Klikněte pravým tlačítkem na
.xcarchive
soubor ve Finderu a vyberte Zobrazit obsah balíčku. - Měla by se zobrazit složka s názvem
dSYMs
, která obsahuje sadu dSYM. - Vytvořte soubor ZIP sady dSYM.
Pokud místo Xcode používáte Visual Studio, podívejte se na článek Kde najdu soubor dSYM pro symboliku protokolů chybového ukončení iOS? a vyhledejte soubor dSYM.
Nahrávání symbolů
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 vyberte Symboly.
- V pravém horním rohu klikněte na Nahrát symboly a nahrajte soubor.
- Jakmile app Center indexuje symboly, budou pro vás symbolické chybové ukončení.
React Native aplikací pro iOS
Pokud chcete získat soubory symbolů pro soubory React Native iOS, vytvořte soubor ZIP s balíčkem dSYM na Macu a mapou zdroje JavaScriptu vaší aplikace. Zdrojová mapa by měla mít název index.ios.map
. Následující příkazy vygenerují mapu zdroje pro buildy vydaných verzí:
react-native bundle --entry-file index.ios.js --platform ios --dev false --reset-cache --bundle-output unused.jsbundle --sourcemap-output index.ios.map
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 Apple
.
- 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 --symbol {symbol file}
Bitcode
Společnost Apple zavedla službu Bitcode, která umožňuje aplikacím odesílaným do App Store překompilovat samotný Apple a použít nejnovější optimalizaci. Pokud je povolený Bitcode, budou se symboly vygenerované pro vaši aplikaci ve Storu lišit od symbolů z vašeho vlastního buildového systému.
Zasílání zpráv o chybách App Center zatím ještě nepodporuje symbolizaci chybových ukončení z aplikací s povoleným bitcodem. Mezitím doporučujeme zakázat bitový kód. Zakázání bitcode výrazně zjednodušuje správu symbolů a v současné době nemá žádné známé nevýhody pro aplikace pro iOS.
Zakázání bitcode pro vaši aplikaci
- V Xcode otevřete nastavení projektu kliknutím na prvek nejvyšší úrovně v Navigátoru projektu.
- Přejděte na stránku Nastavení sestavení.
- Vyhledejte
bitcode
. - Ve výsledku změňte hodnotu z Ano na Ne.
- Opětovné sestavení aplikace
Díky těmto jednoduchým krokům se bude hlášení chyb app center chovat jako obvykle.
Načtení symbolů pro aplikace s povoleným bitcodem
Pokud chcete zachovat povolený bitový kód, můžete stáhnout správné soubory dSYM pomocí následujících kroků:
- Otevření organizátora Xcode
- Vyberte konkrétní archiv aplikace, kterou jste nahráli do iTunes Connect.
- Klikněte na tlačítko Stáhnout dSYMs. Tento krok vloží zkompilované soubory dSYM bitcode do původního archivu.
- Nahrání symbolů do odpovídající aplikace a verze v App Centeru
Pokud organizátor Xcode neposkytuje žádné nové symboly, musíte stáhnout soubory dSYM z portálu iTunes Connect pomocí následujících kroků:
- Vyberte aplikaci na portálu iTunes Connect.
- Nahoře vyberte kartu Aktivita.
- Vyberte verzi sestavení aplikace, která obsahuje chybějící symboly.
- Klikněte na odkaz Stáhnout dSYM.
- Nahrajte stažený soubor do App Center. Tento soubor obsahuje symboly potřebné k tomu, aby App Center symbolizoval vaše chybové ukončení.
Řešení potíží se symboly
Pokud se po nahrání symbolů a zákazu bitového kódu stále zobrazují vaše chybové ukončení bez symbolů, může to být způsobeno tím, že nahrané soubory dSYM neodpovídají souborům požadovaným v App Center. Když nahrajete soubory dSYM, App Center je porovná se správnou verzí aplikace na základě jejich identifikátorů UUID.
Pomocí nástroje rozhraní příkazového řádku s názvem trpasličíd můžete pečlivě zkontrolovat, jestli vaše soubory dSYM mají správné identifikátory UUID.
- Vyhledejte UUID v souboru dSYM:
dwarfdump --u CrashProbeiOS.app.dSYM
- Výsledek by měl vypadat nějak takto:
UUID:ADF53C85-4638-3EFF-A33C-42C13A18E915 (armv7)CrashProbeiOS.app.dSYM/Contents/Resources/DWARF/CrashProbeiOS
UUID:D449E33D-7E74-379D-8B79-15EE104ED1DF (arm64)CrashProbeiOS.app.dSYM/Contents/Resources/DWARF/CrashProbeiOS
- Pečlivě zkontrolujte, jestli vrácený identifikátor UUID odpovídá identifikátorům UUID zobrazeným v dialogovém okně symbolů ladění:
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.