dSYM이 New Relic에 업로드되지 않으면 모바일 충돌 보고서 를 기호화할 수 없습니다. 수동으로 또는 New Relic UI를 통해 직접 dSYM을 업로드 할 수 있습니다. 그러나 애플리케이션의 모든 빌드는 새로운 dSYM을 생성하며 어떤 dSYM이 어떤 앱 빌드에 기인하는지 관리하기 어려울 수 있습니다.
이 상황에서 빌드 UUID 식별자를 사용하여 다음을 수행할 수 있습니다.
- 애플리케이션의 고유한 빌드를 식별합니다.
- 충돌을 상징하는 데 사용할 수 있는 dSYM을 찾으십시오.
빌드 UUID 보기
애플리케이션에는 빌드 UUID가 두 개 이상 있을 수 있으며 애플리케이션이 빌드된 각 CPU 아키텍처에 대해 하나씩 지정됩니다. 빌드 UUID는 연결된 dSYM 내에 저장되며 dSYM을 식별하기 위해 추출할 수 있습니다.
New Relic 충돌 보고서에는 충돌 응용 프로그램의 빌드 UUID도 포함됩니다. 빌드 UUID를 보려면:
- one.newrelic.com > All capabilities > Mobile 로 이동합니다. 그런 다음 앱을 찾아 Crashes > Crash Analysis 클릭합니다.
- Crash list 테이블 에서 임의의 행을 선택합니다.
- 선택한 충돌 보고서의 Crash Details 페이지 에서 속성 목록의
App Image Uuid
을 찾으세요.
App Image Uuid
이(가) 선택한 충돌 보고서의 속성 목록에 없는 경우:
- 충돌 세부 정보를 내보냅니다 .
- 내보낸 충돌 보고서의 Binary images 섹션 에서 빌드 UUID를 찾습니다.
충돌 세부 정보에서 추출한 빌드 UUID를 사용하여 누락된 dSYM을 찾습니다.
이진 이미지 예
다음은 내보낸 충돌 보고서의 Binary images 섹션 예입니다. 이 섹션에는 애플리케이션에 포함된 모든 동적으로 링크된 라이브러리에 대한 빌드 UUID와 기본 애플리케이션에 대한 빌드 UUID가 나열되어 있습니다.
이 예에서 기본 애플리케이션은 New Relic
입니다. 빌드 UUID는 117667e7b8d230cb8a908906c64e0227
입니다. 연결된 dSYM을 찾는 데 사용할 수 있는 식별자입니다.
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
dSYM 찾기 및 재기호화
dSYM의 dSYM 빌드 UUID를 찾으려면 다음 터미널 명령과 함께 dwarfdump
을 사용합니다.
$dwarfdump --uuid PATH_TO_dSYM
다음 예에서 New Relic dSYM은 ARMv7
및 ARM64
각각에 대해 하나씩 두 개의 Build UUID를 반환합니다. ARMv7
빌드 UUID는 누락된 충돌 예시 의 빌드 UUID와 일치합니다.
$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
기호화되지 않은 충돌을 기호화하려면 지침에 따라 dSYM을 수동으로 업로드하십시오 .