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

  1. V Xcode otevřete nabídku Okno a pak vyberte Organizátor.
  2. Vyberte kartu Archivy .
  3. Vyberte aplikaci na levém bočním panelu.
  4. Klikněte pravým tlačítkem na nejnovější archiv a vyberte Zobrazit ve Finderu.
  5. Klikněte pravým tlačítkem na .xcarchive soubor ve Finderu a vyberte Zobrazit obsah balíčku.
  6. Měla by se zobrazit složka s názvem dSYMs , která obsahuje sadu dSYM.
  7. 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

  1. Přihlaste se do App Center a vyberte svou aplikaci.
  2. V nabídce vlevo přejděte do části Diagnostika a vyberte Symboly.
  3. V pravém horním rohu klikněte na Nahrát symboly a nahrajte soubor.
  4. 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.

  1. 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 a 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}'
  1. upload_url Pomocí vlastnosti vrácené z prvního kroku vytvořte požadavek s hlavičkou PUT 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}'
  1. 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í na committed (úspěšně dokončeno) procesu nahrávání, nebo aborted (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

  1. V Xcode otevřete nastavení projektu kliknutím na prvek nejvyšší úrovně v Navigátoru projektu.
  2. Přejděte na stránku Nastavení sestavení.
  3. Vyhledejte bitcode.
  4. Ve výsledku změňte hodnotu z Ano na Ne.
  5. 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ů:

  1. Otevření organizátora Xcode
  2. Vyberte konkrétní archiv aplikace, kterou jste nahráli do iTunes Connect.
  3. Klikněte na tlačítko Stáhnout dSYMs. Tento krok vloží zkompilované soubory dSYM bitcode do původního archivu.
  4. 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ů:

  1. Vyberte aplikaci na portálu iTunes Connect.
  2. Nahoře vyberte kartu Aktivita.
  3. Vyberte verzi sestavení aplikace, která obsahuje chybějící symboly.
  4. Klikněte na odkaz Stáhnout dSYM.
  5. 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.

  1. Vyhledejte UUID v souboru dSYM:
dwarfdump --u CrashProbeiOS.app.dSYM
  1. 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
  1. Pečlivě zkontrolujte, jestli vrácený identifikátor UUID odpovídá identifikátorům UUID zobrazeným v dialogovém okně symbolů ladění:

App Center zobrazí UUID požadovaných symbolů.

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.