iOS アプリケーションがクラッシュしました。dSYM ファイルでクラッシュ ログを読みたいと思います。それはどのように可能ですか?
3 に答える
まず、dSYM ファイル、アプリケーション ファイル、クラッシュ ログの 3 つのファイルが必要です。
X コードを開き、プロジェクト ナビゲーターで Products フォルダーを表示し、アプリ ファイルを "Show in finder" にします。ここには、dSYM ファイルもあります。それらをフォルダーにコピーします。
ターミナルを開き、前に 2 つのファイルをコピーしたフォルダーに移動します。実行:dwarfdump --uuid Application_name.app/Application_name
アプリケーションの UUID を受け取る必要があります。次のコマンドを実行しますdwarfdump --uuid Application_name.app.dSYM
。
クラッシュ ログ (X コード - オーガナイザー - クラッシュ) を開き、「バイナリ イメージ」というタイトルが表示されている行を見つけます。最初の行の別の UUID は、端末で以前に受信したものと再び一致するはずです。
これで、調査中のビルドにクラッシュが記録されたことを確認できたので、クラッシュ ログ ファイルを再度開き、スレッド 0 セクションを見つけます。アプリケーション名と 2 つのアドレスが 2 行で示されているはずです。そのような:
Application_name 0x123456
Application_name 0x987654
ターミナルで実行する必要があります: atos -arch armv7 -o address1 address2
(address1 と address2 は前の 2 つのアドレスに置き換え、armv7 はシステムのアドレスに置き換えます。これは、UUID を取得した行に表示されます)。
ハッピーデバッグ!
編集:この投稿を私のベースとして言及したいと思います。
実際には、dSYM ファイルをデコードすることはできませんが、そこからエラーの詳細を取得します。 1. ログ ファイルからクラッシュ スレッドとアドレスを見つけます。次は 0x0nnn です
。 dSYM ファイル (シンボル ファイル)、.xcarchive から抽出: 以下は xx.app.dSYM
dwarfdump --lookup 0x0nnn --arch=[arm64 armv6 armv7] xx.app.dSYM