Simbolização do iOS

Importante

O Visual Studio App Center está programado para ser desativado em 31 de março de 2025. Embora você possa continuar a usar o Visual Studio App Center até que ele seja totalmente desativado, há várias alternativas recomendadas para as quais você pode considerar migrar.

Saiba mais sobre linhas do tempo e alternativas de suporte.

Os relatórios de falha do macOS, tvOS e iOS mostram os rastreamentos de pilha para todos os threads em execução do seu aplicativo no momento em que ocorreu uma falha. Os rastreamentos de pilha contêm apenas endereços de memória; não nomes de classe, métodos, nomes de arquivo ou números de linha necessários para entender as falhas.

Para obter os endereços de memória traduzidos, você precisa carregar um pacote dSYM no App Center, que contém todas as informações necessárias para a simbólica. Você pode saber mais sobre a simbólica na documentação oficial do desenvolvedor da Apple.

O serviço de Build e Distribuição do App Center pode gerar automaticamente um dSYM e um arquivo de mapa .zip de origem válidos e carregar o arquivo no serviço de Diagnóstico. Se você usar o App Center para compilar e distribuir automaticamente seu aplicativo para os usuários finais, não será necessário obter e carregar manualmente os arquivos de símbolo.

Falhas não sínplicadas

Falhas não modificadas são exibidas na seção Diagnóstico do App Center para que você possa exibir alguns detalhes antes mesmo de carregar símbolos. Os símbolos ausentes dessas falhas serão mostrados na guia "sem saturação". Se os símbolos ausentes forem carregados, o grupo de falhas não síndico será substituído por um grupo de falhas simbólico.

Localizando o .dSYM pacote

  1. No Xcode, abra o menu Janela e selecione Organizador.
  2. Selecione a guia Arquivos.
  3. Selecione seu aplicativo na barra lateral esquerda.
  4. Clique com o botão direito do mouse no arquivo morto mais recente e selecione Mostrar no Localizador.
  5. Clique com o botão direito do .xcarchive mouse no arquivo no Localizador e selecione Mostrar Conteúdo do Pacote.
  6. Você deverá ver uma pasta chamada dSYMs que contém seu pacote dSYM.
  7. Crie um arquivo zip do pacote dSYM.

Se você estiver usando o Visual Studio em vez do Xcode, confira Onde posso encontrar o arquivo dSYM para simbolizar logs de falha do iOS? para encontrar o arquivo dSYM.

Carregando símbolos

App Center Portal

  1. Faça logon no App Center e selecione seu aplicativo.
  2. No menu à esquerda, navegue até a seção Diagnóstico e selecione Símbolos.
  3. No canto superior direito, clique em Carregar símbolos e carregue o arquivo.
  4. Depois que os símbolos forem indexados pelo App Center, as falhas serão simbólicas para você.

React Native aplicativos iOS

Para obter arquivos de símbolo para React Native arquivos iOS, crie um arquivo ZIP com o pacote dSYM em seu Mac e o mapa de origem javaScript do seu aplicativo. O mapa de origem deve ser nomeado index.ios.mapcomo . Os comandos abaixo gerarão o mapa de origem para builds de versão:

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

O processo de carregamento de símbolos por meio da API envolve uma série de três chamadas à API: uma para alocar espaço em nosso back-end, outra para carregar o arquivo e outra para atualizar o status do upload. O corpo da primeira chamada à API deve ser definido symbol_typeApplecomo .

  1. Dispare uma POST solicitação para a API do symbol_uploads. Essa chamada aloca espaço em nosso back-end para o arquivo e retorna uma symbol_upload_id propriedade e 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. Usando a upload_url propriedade retornada da primeira etapa, faça uma PUT solicitação com o cabeçalho : "x-ms-blob-type: BlockBlob" e forneça o local do arquivo no disco. Essa chamada carrega o arquivo em nossas contas de armazenamento de back-end. Saiba mais sobre cabeçalhos de solicitação put blob .
curl -X PUT '{upload_url}' \
    -H 'x-ms-blob-type: BlockBlob' \
    --upload-file '{path to file}'
  1. Faça uma PATCH solicitação para a API symbol_uploads usando a symbol_upload_id propriedade retornada da primeira etapa. No corpo da solicitação, especifique se deseja definir o status do upload como committed (concluído com êxito) o processo de carregamento ou aborted (concluído sem êxito).
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" }'

Observação

A API de uploads de símbolo não funciona para arquivos maiores que 256 MB. Use a CLI do App Center para carregar esses arquivos. Você pode instalar a CLI do App Center seguindo as instruções em nosso repositório da CLI do App Center.

App Center CLI

Você também pode usar a CLI para carregar arquivos de símbolo:

appcenter crashes upload-symbols --symbol {symbol file}

Bitcode

O Bitcode foi introduzido pela Apple para permitir que os aplicativos enviados ao App Store sejam recompilados pela própria Apple e apliquem a otimização mais recente. Se o Bitcode estiver habilitado, os símbolos gerados para seu aplicativo na loja serão diferentes dos do seu próprio sistema de build.

O relatório de falhas do App Center ainda não dá suporte completo à simbólica de falhas de aplicativos habilitados para bitcode. Enquanto isso, aconselhamos que você desabilite o bitcode. Desabilitar o bitcode simplifica significativamente o gerenciamento de símbolos e atualmente não tem nenhuma desvantagem conhecida para aplicativos iOS.

Desabilitar o bitcode para seu aplicativo

  1. No Xcode, abra as configurações do projeto clicando no elemento de nível superior no Navegador do Projeto
  2. Vá para a página Configurações de Build
  3. Pesquise por bitcode
  4. No resultado, altere o valor de Sim para Não
  5. Recompilar seu aplicativo

Com essas etapas simples, os relatórios de falhas do App Center se comportarão como de costume.

Recuperar símbolos para aplicativos habilitados para bitcode

Se você quiser manter o bitcode habilitado, baixe os arquivos dSYM adequados seguindo estas etapas:

  1. Abrir o Organizador do Xcode
  2. Selecione o arquivo morto específico do aplicativo que você carregou no iTunes Connect
  3. Clique no botão "Baixar dSYMs". Esta etapa inserirá os arquivos dSYM compilados do Bitcode no arquivo morto original.
  4. Carregar os símbolos para o aplicativo e a versão correspondentes no App Center

Se o organizador do Xcode não fornecer novos símbolos, você deverá baixar os arquivos dSYM do portal do iTunes Connect seguindo estas etapas:

  1. Selecione seu aplicativo no portal do iTunes Connect
  2. Selecione a guia Atividade na parte superior
  3. Selecione a versão de build do aplicativo que tem os símbolos ausentes
  4. Clique no link Baixar dSYM
  5. Carregue o arquivo baixado no App Center. Esse arquivo contém os símbolos necessários para que o App Center simbolize suas falhas.

Solução de problemas de símbolo

Se as falhas ainda parecerem não modificadas depois de carregar símbolos e desabilitar o bitcode, pode ser porque os arquivos dSYM carregados não correspondem aos exigidos pelo App Center. Quando você carrega arquivos dSYM, o App Center os corresponde à versão certa do aplicativo com base em seus UUIDs.

Você pode dobrar marcar se os arquivos dSYM têm os UUIDs corretos usando uma ferramenta da CLI chamada dwarfdump.

  1. Localize o UUID no arquivo dSYM:
dwarfdump --u CrashProbeiOS.app.dSYM
  1. O resultado deve ser semelhante a este:
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. Double marcar se a UUID retornada corresponder aos UUIDs mostrados na caixa de diálogo de símbolos de depuração:

O App Center exibe a UUID dos símbolos necessários

Ignorando símbolos

Quando o App Center não tem todos os arquivos de símbolo para simbolizar totalmente os relatórios de falha, as falhas são listadas na guia Não Sincronizado . Os símbolos necessários serão carregados nesta página se você tiver acesso a eles.

Se você não conseguir carregar os símbolos, poderá marcá-los como Ignorados selecionando linhas na tabela e clicando no botão Ignorar versões . Esse botão instrui o App Center a processar as falhas e simbolizá-las o máximo possível com os símbolos no arquivo. Depois de terminar o processamento, eles aparecerão na guia Falhas parcialmente simbólica. Novas falhas que também dependem dessas mesmas IDs de símbolo marcadas como ignoradas ignorarão a guia Não Smbolicada conforme elas entram e fluem pelo sistema.