Obtenha relatórios de falhas legíveis no painel do Crashlytics

Por padrão, o Firebase Crashlytics processa automaticamente seus arquivos de símbolo de depuração (dSYM) para fornecer relatórios de falhas desofuscados e legíveis por humanos. Geralmente, você configura esse comportamento durante a configuração inicial do Crashlytics no seu aplicativo, especificamente adicionando um script de execução que carrega automaticamente os arquivos dSYM durante a fase de criação do seu aplicativo.

Infelizmente, existem alguns casos que podem causar falha no upload automático de arquivos dSYM. Este guia fornece algumas maneiras de solucionar problemas quando o Crashlytics não consegue localizar os arquivos dSYM do seu aplicativo.

Certifique-se de que o Xcode possa processar dSYMs automaticamente e fazer upload dos arquivos

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

Certifique-se de que sua configuração para o script de execução do Crashlytics esteja atualizada com os novos requisitos que começaram com o Xcode 15. Se sua configuração não estiver atualizada, você poderá receber o seguinte erro:
error: Info.plist Error Unable to process Info.plist at path ... .

Especificamente, o Xcode 15 e versões posteriores 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 ), certifique-se de ter a seguinte configuração:

  1. Clique na guia Build Phases e expanda a seção Run Script .

  2. Na seção Arquivos de entrada , certifique-se de ter 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)

Verifique se o Xcode está produzindo dSYMs

Na maioria das vezes, os arquivos dSYM desaparecem porque o Xcode simplesmente não os produz. Quando um upload falha, o Crashlytics exibe um alerta "DSYM ausente" no console do Firebase. Se você receber este alerta, primeiro verifique se o Xcode está produzindo o dSYM correto para cada compilação:

  1. Abra seu projeto no Xcode e selecione o arquivo do projeto no Xcode Navigator.

  2. Selecione seu destino de construção principal.

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

  4. Procure o debug information format .

  5. Defina o formato de informações de depuração como DWARF com arquivo dSYM para todos os seus tipos de compilação.

  6. Recrie seu aplicativo.

Seus relatórios de falhas agora devem aparecer no painel do Crashlytics . Se o problema persistir ou você encontrar outros erros, tente localizar seus dSYMs e carregá-los manualmente no Crashlytics .

Localize seus dSYMs em uma máquina local

Execute o seguinte comando para exibir todos os UUIDs de seus dSYMs em sua máquina e procure o dSYM ausente:

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

Depois de encontrar o dSYM, carregue-o manualmente no Crashlytics . Se o comando mdfind não retornar nenhum resultado, você pode procurar no diretório Products onde seu .app reside (por padrão, o diretório Products está localizado em Derived Data ). Se seu aplicativo for lançado para produção, você também poderá procurar seu dSYM no diretório .xcarchive no disco:

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

  2. Clique com a tecla Control pressionada em um arquivo para visualizá-lo no Finder. Clique com a tecla Control pressionada novamente e clique em Mostrar conteúdo do pacote .

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

Faça upload dos seus dSYMs

O Crashlytics oferece suporte a várias maneiras de fazer upload de seus arquivos dSYMs, de forma automática ou manual .

(Recomendado) Processe automaticamente seus dSYMs e carregue os arquivos

Ao configurar inicialmente o Crashlytics, você provavelmente configurou esse comportamento de upload automático para seu aplicativo. No entanto, se os uploads automáticos falharem, verifique se sua configuração está correta .

Carregue manualmente seus arquivos dSYM

Se os uploads automáticos falharem, você poderá carregar manualmente seus arquivos dSYM usando uma das opções a seguir.

  • Opção 1 : use a opção "Arrastar e Soltar" baseada no console para fazer upload de um arquivo zip contendo seus arquivos dSYM (vá para Console do Firebase > Crashlytics > guia dSYMs ).

  • Opção 2 : Use o script upload-symbols que você pode chamar de qualquer lugar em seu processo de construção para carregar manualmente seus arquivos dSYM. Para executar o script upload-symbols , use uma das seguintes opções:

    • Opção A : inclua a seguinte linha em seu processo de construçã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 do 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 este script, execute upload-symbols com o parâmetro --help .