20

iOS アプリケーションがクラッシュしました。dSYM ファイルでクラッシュ ログを読みたいと思います。それはどのように可能ですか?

4

3 に答える 3

38

まず、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 を取得した行に表示されます)。

ハッピーデバッグ!

編集:この投稿を私のベースとして言及したいと思います。

于 2012-08-09T12:05:16.817 に答える
1

実際には、dSYM ファイルをデコードすることはできませんが、そこからエラーの詳細を取得します。 1. ログ ファイルからクラッシュ スレッドとアドレスを見つけます。次は 0x0nnn です
。 dSYM ファイル (シンボル ファイル)、.xcarchive から抽出: 以下は xx.app.dSYM

dwarfdump --lookup 0x0nnn --arch=[arm64 armv6 armv7] xx.app.dSYM
于 2015-05-28T05:13:09.323 に答える