Receber relatórios de erros legíveis no painel do Crashlytics


Por padrão, o Firebase Crashlytics processa automaticamente seus arquivos de símbolo de depuração (dSYM, na sigla em inglês) para gerar relatórios de erros desofuscados e legíveis por humanos. Geralmente, esse comportamento é configurado durante a configuração inicial do Crashlytics no seu app, especificamente adicionando um script de execução que faz upload automático de arquivos dSYM durante a fase de build do app.

Infelizmente, há alguns casos que podem causar falha no upload automático dos arquivos dSYM. Este guia mostra algumas formas de resolver problemas quando o Crashlytics não consegue localizar os arquivos dSYM do seu app.

Confirmar que o Xcode é capaz de processar dSYMs e fazer upload dos arquivos automaticamente

Ao configurar o Crashlytics no seu app, você configurou um script de execução para processar automaticamente os dSYMs e fazer upload dos arquivos.

Verifique se a configuração do script de execução do Crashlytics está atualizada com os novos requisitos que começaram com o Xcode 15. Se a configuração não estiver atualizada, pode ser que você receba o seguinte erro:
error: Info.plist Error Unable to process Info.plist at path ....

Especificamente, o Xcode 15 e versões mais recentes exigem que você forneça um conjunto mais completo de locais de arquivos. Para o script de execução do Crashlytics (firebase-ios-sdk/Crashlytics/run), verifique se você tem esta configuração:

  1. Clique na guia Fases de build e expanda a seção Executar script.

  2. Na seção Arquivos de entrada, verifique se você tem os caminhos para os locais dos seguintes arquivos:

    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist
    $(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
    $(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)

Verificar se o Xcode está produzindo dSYMs

Com frequência, a causa da ausência dos arquivos dSYM é o simples fato de que o Xcode parou de produzi-los. Quando um upload falha, o Crashlytics mostra um alerta dSYM ausente no console do Firebase. Se você receber esse alerta, primeiro verifique se o Xcode está produzindo o dSYM correto para cada build:

  1. Abra seu projeto no Xcode e selecione o arquivo de projeto dele no navegador.

  2. Selecione o arquivo de destino principal do build.

  3. Abra a guia Build Settings do destino e clique em All.

  4. Pesquisar por debug information format.

  5. Defina Debug Information Format como DWARF with dSYM File para todos os tipos de builds.

  6. Recrie seu app.

Seus relatórios de erros serão exibidos no painel do Crashlytics. Caso o problema persista ou você encontre outros erros, tente localizar os dSYMs e fazer upload deles para o Crashlytics manualmente.

Localizar seus dSYMs em uma máquina local

Execute o comando a seguir para exibir todos os UUIDs de dSYMs na sua máquina e procurar o dSYM ausente:

mdfind -name .dSYM | while read -r line; do dwarfdump -u "$line"; done

Depois de encontrar o dSYM, faça o upload manual dele para o Crashlytics. Se o comando mdfind não retornar nenhum resultado, procure no diretório Products em que seu .app está localizado (por padrão, o diretório Products está localizado em Derived Data). Se o app for liberado para produção, também será possível procurar o dSYM no diretório .xcarchive no disco:

  1. No Xcode, abra a janela Organizer e selecione seu app na lista. O Xcode exibe uma lista de arquivos do seu projeto.

  2. Mantendo a tecla Control pressionada, clique em um arquivo para visualizá-lo no Finder. Clique com a tecla Control pressionada novamente e depois em Show Package Contents.

  3. Em .xcarchive, há um diretório dSYMs que contém dSYMs gerados como parte do processo de arquivamento do Xcode.

Fazer upload dos seus dSYMs

O Crashlytics aceita várias formas de fazer upload dos arquivos dSYMs, automaticamente ou manualmente.

(Recomendado) Processar automaticamente seus dSYMs e fazer upload dos arquivos

Ao configurar o Crashlytics pela primeira vez, você provavelmente definiu esse comportamento de upload automático para seu app. No entanto, se houver falha nos uploads automáticos, verifique se sua configuração está correta.

Fazer upload manual dos arquivos dSYM

Se os uploads automáticos falharem, será possível fazer o upload manual dos seus arquivos dSYM usando uma das opções a seguir.

  • Opção 1: usar a opção Arraste e solte baseada no console para fazer upload de um arquivo ZIP contendo os arquivos dSYM (acesse o console do Firebase > Crashlytics > dSYMs).

  • Opção 2: usar o script upload-symbols, que pode ser chamado de qualquer lugar no processo de build para fazer o upload manual dos arquivos dSYM. Para executar o script upload-symbols, use uma das seguintes opções:

    • Opção A: inclua a seguinte linha no processo de compilação:

      find dSYM_DIRECTORY -name "*.dSYM" | xargs -I \{\} $PODS_ROOT/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p PLATFORM \{\}
    • Opção B: execute o script diretamente no seu terminal:

      /PATH/TO/PODS/DIRECTORY/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p ios /PATH/TO/dSYMs

    Para notas de uso e instruções adicionais sobre esse script, execute upload-symbols com o parâmetro --help.