web-dev-qa-db-ja.com

Xcodeクラッシュオーガナイザーは.xccrashpointファイルをシンボリック化しません

オーガナイザーの新しいXcode7の[クラッシュ]タブには、AppStoreからのアプリのクラッシュがいくつか表示されます。 ドキュメント によると、スタックトレースがあるはずです。ただし、6つのクラッシュのいずれもスタックトレースを象徴していません: enter image description here

「プロジェクトで開く」をクリックしてみましたが、同じように役に立ちません: enter image description here

もちろん、ストアに送信するときにdsymとデバッグ情報を含めました。私はまだオーガナイザーに提出ビルドを持っているので、dsymはまだ私のマシンに存在しています。これについて適切なスタックトレースを取得するにはどうすればよいですか?

28
Zane Claes

理想的ではありませんが、.xccrashpointファイルを右クリックして[パッケージの内容を表示]を選択すると、フォルダー構造をナビゲートして、抽出してコマンドラインから記号化できる実際の.crashファイルを見つけることができます ここで説明する手順

実行

/Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash

確認しておいて DEVELOPER_DIRが設定されます:

export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
15
esilver

ショートストーリー:

In Xcode 9. : "Crashes Organizerは、Spotlightによってインデックス付けされたローカル.dSYMを使用して、シンボル化されていないログが選択されている場合、それらをシンボル化します。(22550064)"

これについて詳しくは、 Xcodeのドキュメント をご覧ください。

長い話:

Xcodeがマシンコードアプリ用の.xcarchiveをビルドすると、デフォルトでSpotlightによってインデックスが作成される.dSYMファイルが生成されます。ビットコードでアップロードされたアプリの場合、アーカイブオーガナイザーを使用して、デフォルトでSpotlightによってインデックスが作成されているdSYMをダウンロードできます。

アプリをAppStoreにアップロードするときにシンボル情報を含めないことを選択した場合、クラッシュオーガナイザーによってダウンロードされたクラッシュログはシンボル化されません。クラッシュしたアプリのバージョン用に生成された適切な.dSYMファイルがある場合、クラッシュをクリックして表示すると、Xcodeは自動的にクラッシュを象徴します。この機能はXcode9.0以降に存在します。ログ詳細ビューを右クリックして[シンボリック化]をクリックすると、手動で再シンボリック化を呼び出すことができます。

5
mychrisdangelo

Xcode 10で初めてこれを実行します。クラッシュログを右クリックし、Symbolicateを選択しても効果はありませんでした。 OrganizerウィンドウのArchivesセクションでビルドを選択し、右側のペインの[Download DebugSymbols]ボタンをクリックしました。これは何もしなかったようですが、Crashesに戻って、同じクラッシュを再び象徴するようにXcodeに指示したところ、今回は機能しました。

0
janineanne

アプリのdsymをローカルにする必要があります。これがビルドボックスなどからアップロードされたビルドである場合、それらはありません。 App Store Connectに移動し、[アクティビティ]タブをクリックして、関連するビルドを見つけ、それをタップします。バージョンの詳細画面には、dSYMをダウンロードするためのリンクが含まれています。ダウンロードして、ダウンロードした.Zipファイルを展開します。

Xcodeでのクラッシュに戻りましょう。これらは正常にシンボリック化されます。

正気のヒント:ローカルソースがクラッシュリリースと同じコミットであることを確認してください。そうしないと、リリース以降にソースファイルが変更された場合、Xcodeが誤った行にダンプする可能性があります。例えば最近2行追加したため、ソースの127行目が129行目に移動しました...クラッシュビューはこれらの変更について認識していません。クラッシュするコードが実際に129行目にある、127行目のクラッシュが表示されます。

0
Graham Perks