• ログイン無料アカウント

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

シンボル化されていないクラッシュのビルドUUIDを探す

dSYM が New Relic にアップロードされていないと、 モバイル クラッシュ レポート を記号化できません。 dSYM を手動でアップロードしたり、New Relic の UI から直接アップロードすることができます。しかし、アプリケーションのビルドごとに新しいdSYMが作成されるため、どのdSYMがどのアプリのビルドに起因するのかを管理するのは困難な場合があります。

このような状況では、Build UUID識別子を使って

  • アプリケーションのユニークなビルドを識別します。
  • どのdSYMがクラッシュのシンボリック化に使用できるかを調べます。

ビルドのUUIDを見る

1つのアプリケーションは複数のBuild UUIDを持つことができ、アプリケーションが構築されたCPUアーキテクチャごとに1つのBuild UUIDが割り当てられます。Build UUIDは、関連するdSYM内にも格納され、dSYMを識別するために抽出することができます。

New Relic のクラッシュレポートには、クラッシュしたアプリケーションの Build UUID も含まれています。Build UUID を表示するには。

  1. one.newrelic.com にアクセスし、トップナビの Mobile をクリックします。その後、自分のアプリを見つけ、 Crashes> Crash Analysis をクリックします。
  2. クラッシュリスト テーブル から、任意の行を選択します。
  3. 選択したクラッシュレポートの Crash Details ページ から、属性リストにある App Image Uuid を探します。

App Image Uuid が選択したクラッシュレポートの属性リストにない場合。

  1. 衝突の詳細をエクスポートする.
  2. エクスポートされたクラッシュレポートの Binary images section の中にあるBuild UUIDを探してください。

クラッシュの詳細から抽出したBuild UUIDを使って、不足しているdSYMを見つけます。

バイナリ画像の例

以下は、エクスポートされたクラッシュレポートの Binary images セクションの例です。このセクションには、アプリケーションに含まれるすべての動的リンクライブラリのBuild UUIDと、メインアプリケーションのBuild UUIDが記載されています。

この例では、メインのアプリケーションは New Relic です。そのBuild UUIDは 117667e7b8d230cb8a908906c64e0227 です。これは、関連するdSYMを見つけるために使用できる識別子です。

Binary Images:
0xb1000 - 0x30d000 New Relic armv7 <117667e7b8d230cb8a908906c64e0227> /var/containers/Bundle/Application/New Relic.app/New Relic
0x22290000 - 0x22292000 libSystem.B.dylib armv7 <39d6d6f7c2ac3de8bb29c40a1b66368a> /usr/lib/libSystem.B.dylib
0x22292000 - 0x222de000 libc++.1.dylib armv7 <017dba6c16b63f9ebecb9ddd0d0a4520> /usr/lib/libc++.1.dylib
0x222de000 - 0x222f9000 libc++abi.dylib armv7 <d32373f6c2153a509f6603750d213ffb> /usr/lib/libc++abi.dylib
0x222fc000 - 0x22667000 libobjc.A.dylib armv7 <94f6d325c1843f45b3a439b86fc9de15> /usr/lib/libobjc.A.dylib
0x22667000 - 0x2266c000 libcache.dylib armv7 <8009f99fb892331dbcb61cd740ff0f43> /usr/lib/system/libcache.dylib
0x2266c000 - 0x22676000 libcommonCrypto.dylib armv7 <f6db318471d732d39918ef36bde65cb7> /usr/lib/system/libcommonCrypto.dylib
0x22676000 - 0x2267c000 libcompiler_rt.dylib armv7 <cfa3ca12d6c2383abcaf3c8541e9b86c> /usr/lib/system/libcompiler_rt.dylib
0x2267c000 - 0x22683000 libcopyfile.dylib armv7 <d2b06020c3693c7b9d179434f8115ba0> /usr/lib/system/libcopyfile.dylib
0x22683000 - 0x226d3000 libcorecrypto.dylib armv7 <181437f8d9e53277ace439de8b3fd1ad> /usr/lib/system/libcorecrypto.dylib
0x226d3000 - 0x2271d000 libdispatch.dylib armv7 <bbb4bba2176039ab95a59d7a56f6eff8> /usr/lib/system/libdispatch.dylib

dSYMの発見と再記号化

dSYMのBuild UUIDを調べるには: dwarfdump を以下のターミナルコマンドで使用します。

dwarfdump --uuid <path-to-dSYM>

以下の例では、New Relic dSYM は、 ARMv7ARM64 にそれぞれ1つずつ、計2つの Build UUID を返します。 ARMv7 のBuild UUIDは、不足しているクラッシュ のBuild UUIDと一致しています。

> dwarfdump --uuid ./New\ Relic.app.dSYM/Contents/Resources/DWARF/New\ Relic
UUID: 117667E7-B8D2-30CB-8A90-8906C64E0227 (armv7) ./New Relic.app.dSYM/Contents/Resources/DWARF/New Relic
UUID: B1A8C6EE-02B9-3C55-AEE7-308521873107 (arm64) ./New Relic.app.dSYM/Contents/Resources/DWARF/New Relic

シンボリック化されていないクラッシュをシンボリック化するには、 手動でdSYM をアップロードする手順に従ってください。

Copyright © 2022 New Relic株式会社。