Si el dSYM no se carga en New Relic, los informes de fallos móviles no se pueden simbolizar. Puede cargar dSYM manualmente o directamente a través de la UI de New Relic. Sin embargo, cada compilación de una aplicación creará un nuevo dSYM y puede resultar difícil administrar qué dSYM es atributo de cada compilación de aplicación.
En esta situación, puede utilizar el identificador UUID de compilación para:
- Identificar una compilación única de una aplicación.
- Encuentre qué dSYM se puede utilizar para simbolizar un bloqueo.
Ver el UUID de compilación
Una aplicación puede tener más de un UUID de compilación, un atributo para cada arquitectura de CPU en la que se construye la aplicación. El UUID de compilación también se almacena dentro del dSYM asociado y se puede extraer para identificar el dSYM.
Los informes de fallos de New Relic también contienen el UUID de compilación de la aplicación que falla. Para ver el UUID de compilación:
- Vaya a one.newrelic.com > All capabilities > Mobile. Luego busque su aplicación y haga clic en Crashes > Crash Analysis.
- En la tablaCrash list , seleccione cualquier fila.
- En la páginaCrash Details del informe de fallos seleccionado, busque el
App Image Uuid
en la lista de atributos.
Si App Image Uuid
no está en la lista de atributos del informe de fallos seleccionado:
- Exporte los detalles del accidente.
- Busque el UUID de compilación en la secciónBinary images del informe de fallos exportado.
Utilice el UUID de compilación extraído de los detalles del fallo para encontrar el dSYM que falta.
Ejemplo de imágenes binarias
A continuación se muestra un ejemplo de la sección Binary images de un informe de fallos exportado. Esta sección enumera el UUID de compilación para cada biblioteca vinculada dinámicamente incluida en la aplicación, así como el UUID de compilación para la aplicación principal.
En este ejemplo, la aplicación principal es New Relic
. Su UUID de compilación es 117667e7b8d230cb8a908906c64e0227
. Este es el identificador que puede utilizar para encontrar el dSYM asociado.
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
Encuentra y resimboliza el dSYM.
Para encontrar el UUID de compilación de un dSYM: use dwarfdump
con el siguiente comando de terminal:
$dwarfdump --uuid PATH_TO_dSYM
En el siguiente ejemplo, New Relic dSYM devuelve dos UUID de compilación, uno para ARMv7
y uno para ARM64
. El UUID de compilación ARMv7
coincide con el UUID de compilación del ejemplo de falla que falta:
$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 los fallos no simbolizados, siga las instrucciones para cargar manualmente el dSYM.