Se o dSYM não for carregado no New Relic, os relatórios de falhas móveis não poderão ser simbolizados. Você pode fazer upload de dSYMs manualmente ou diretamente por meio da interface do New Relic. No entanto, cada compilação de um aplicativo criará um novo dSYM e pode ser difícil gerenciar qual dSYM é atribuído a qual compilação de aplicativo.
Nessa situação, você pode usar o identificador Build UUID para:
- Identifique uma construção exclusiva de um aplicativo.
- Descubra qual dSYM pode ser usado para simbolizar uma falha.
Ver o UUID da compilação
Um aplicativo pode ter mais de um Build UUID, um atributo para cada arquitetura de CPU em que o aplicativo é construído. O Build UUID também é armazenado no dSYM associado e pode ser extraído para identificar o dSYM.
Os relatórios de travamento do New Relic também contêm o Build UUID do aplicativo com travamento. Para visualizar o UUID de compilação:
- Vá para one.newrelic.com > All capabilities > Mobile. Em seguida, encontre seu aplicativo e clique em Crashes > Crash Analysis.
- Na tabelaCrash list , selecione qualquer linha.
- Na páginaCrash Details do relatório de falha selecionado, procure por
App Image Uuid
na lista de atributos.
Se App Image Uuid
não estiver na lista de atributos do relatório de falha selecionado:
- Exporte os detalhes da falha.
- Procure o UUID de compilação na seçãoBinary images do relatório de falhas exportado.
Use o Build UUID extraído dos detalhes da falha para encontrar o dSYM ausente.
Exemplo de imagens binárias
Aqui está um exemplo da seção Binary images de um relatório de falha exportado. Esta seção lista o Build UUID para cada biblioteca vinculada dinamicamente incluída no aplicativo, bem como o Build UUID do aplicativo principal.
Neste exemplo, o aplicativo principal é New Relic
. Seu UUID de compilação é 117667e7b8d230cb8a908906c64e0227
. Este é o identificador que você pode usar para localizar o dSYM associado.
Binary Images:0xb1000 - 0x30d000 New Relic armv7 <117667e7b8d230cb8a908906c64e0227> /var/containers/Bundle/Application/New Relic.app/New Relic0x22290000 - 0x22292000 libSystem.B.dylib armv7 <39d6d6f7c2ac3de8bb29c40a1b66368a> /usr/lib/libSystem.B.dylib0x22292000 - 0x222de000 libc++.1.dylib armv7 <017dba6c16b63f9ebecb9ddd0d0a4520> /usr/lib/libc++.1.dylib0x222de000 - 0x222f9000 libc++abi.dylib armv7 <d32373f6c2153a509f6603750d213ffb> /usr/lib/libc++abi.dylib0x222fc000 - 0x22667000 libobjc.A.dylib armv7 <94f6d325c1843f45b3a439b86fc9de15> /usr/lib/libobjc.A.dylib0x22667000 - 0x2266c000 libcache.dylib armv7 <8009f99fb892331dbcb61cd740ff0f43> /usr/lib/system/libcache.dylib0x2266c000 - 0x22676000 libcommonCrypto.dylib armv7 <f6db318471d732d39918ef36bde65cb7> /usr/lib/system/libcommonCrypto.dylib0x22676000 - 0x2267c000 libcompiler_rt.dylib armv7 <cfa3ca12d6c2383abcaf3c8541e9b86c> /usr/lib/system/libcompiler_rt.dylib0x2267c000 - 0x22683000 libcopyfile.dylib armv7 <d2b06020c3693c7b9d179434f8115ba0> /usr/lib/system/libcopyfile.dylib0x22683000 - 0x226d3000 libcorecrypto.dylib armv7 <181437f8d9e53277ace439de8b3fd1ad> /usr/lib/system/libcorecrypto.dylib0x226d3000 - 0x2271d000 libdispatch.dylib armv7 <bbb4bba2176039ab95a59d7a56f6eff8> /usr/lib/system/libdispatch.dylib
Encontre e ressimbolize o dSYM
Para encontrar o UUID de compilação de um dSYM: use dwarfdump
com o seguinte comando de terminal:
$dwarfdump --uuid PATH_TO_dSYM
No exemplo a seguir, o dSYM do New Relic retorna dois UUIDs de compilação, um para ARMv7
e ARM64
. O UUID de compilação ARMv7
corresponde ao UUID de compilação do exemplo de falha ausente:
$dwarfdump --uuid ./New\ Relic.app.dSYM/Contents/Resources/DWARF/New\ RelicUUID: 117667E7-B8D2-30CB-8A90-8906C64E0227 (armv7) ./New Relic.app.dSYM/Contents/Resources/DWARF/New RelicUUID: B1A8C6EE-02B9-3C55-AEE7-308521873107 (arm64) ./New Relic.app.dSYM/Contents/Resources/DWARF/New Relic
Para simbolizar as falhas não simbolizadas, siga as instruções para carregar manualmente o dSYM.