2012-04-02 11 views
11

私はさまざまなユーザーから多くのクラッシュログを取得しています。異なるビルドとdSYMファイルがあります。どのように特定のクラッシュログがビルドとdSYMファイルに属しているかを確認できます。クラッシュログへのリンク.dSYM

crashlogとdSYMの両方が同じビルドに属しているかどうかを確認する方法はありますか?あなたはあなたの.appファイルを作成した後、あなたのdSYMをアーカイブすることになっている

答えて

15

お返事いただきありがとうございます。私はdSYMファイル内のcrashlogの関係を見つける適切な方法を見つけました。

まず最初に、すべてのクラッシュログとdSYMを1つのディレクトリに保存し、アプリケーションのUUIDSとcrashlogのUUIDを示すコマンドを実行します。コマンドを実行する前に、これらのファイルをすべて保存した同じフォルダにいることを確認してください。

すべてのrunコマンドの最初の:結果、次のあなたを与えるだろう

mdls YourApp.app.dSYM 

(サンプル):

com_apple_xcode_dsym_pathsの=( "コンテンツ/リソース/ DWARF/YourApp" ) com_apple_xcode_dsym_uuids = ( "9AD4BCAF-C847-38B1-9055-CF4221BE2F65" ) kMDItemContentCreationDate = 2012-08-27 08:42:40 +0000 kMDItemContentModificationDate = 2012年8月27日8時42分40秒+0000 kMDItemContentType = "com.apple.xcode.dsym" kMDItemContentTypeTree =( "com.apple.xcode.dsym"、 "com.apple.package" 、 "public.directory"、 "public.item" ) kMDItemDateAdded = 2012-09-06 11:30:37 +0000 kMDItemDisplayName = "Yourapp.app。dSYM」 kMDItemFSContentChangeDate = 2012年8月27日午前8時42分40秒0000 kMDItemFSCreationDate = 2012年8月27日午前8時42分40秒0000 kMDItemFSCreatorCode = "" kMDItemFSFinderFlags = 0 kMDItemFSHasCustomIcon = 0 kMDItemFSInvisible = 0 kMDItemFSIsExtensionHidden = 0 kMDItemFSIsStationery = 0 kMDItemFSLabel = 0 kMDItemFSName = "YourApp.app.dSYM" kMDItemFSNodeCount = 1 kMDItemFSOwnerGroupID = 20 kMDItemFSOwnerUserID = 501 kMDItemFSSize = 58267749 kMDItemFSTypeCode = "" KMD ItemKind = "パッケージ" kMDItemLogicalSize = 58267749 kMDItemPhysicalSize = 58273792

は、今ここであなたのdSYMBファイルの(太字)UUIDを得ました。

は今すぐ以下のコマンドを実行します。

grep "+YourApp" *crash 

この意志の結果:

YourApp 8-27-12 2-25 PM.crash:0xe6000 - 0x8e9fff + YourApp < 9ad4bcafc84738b19055cf4221be2f65>の/ varのARMv7 /mobile/Applications/A5870F65-2694-4A06-BBDE-8BCA709FB838/Bitzer.app/Bitzer

この結果では、アプリケーションバイナリのUUIDである32桁の文字列(太字)が再度見つかります。このUUIDがdSYMファイルUUIDと一致する場合、それらは同じビルドに属します。

これはすべて私が観察したものです。私はすべての返信を再度投票しました返信のおかげで人々の幸運を助け続ける.. :)

+0

ありがとうございます。 .xcarchiveファイルの大きな山の中から特定のdSYMを見つけ出す必要があるので、フォローアップの質問があります:http://stackoverflow.com/q/21297928/129202 – Jonny

2

よろしく、。すべてのビルドは、同じソースであっても、全く異なるdSYMファイルを生成できます。

.appファイルには、バージョン番号を含む固有のファイル名がありますか。もしそうなら、その名前はPath 5の隣の5行目のクラッシュログに記録されます。

これ以外にも、他のものを関連付ける方法は他にありません。

リリースごとにdSYMファイルを保存する習慣を覚えてください。私はあなたがXcodeのアーカイブでこれを行うことができると信じていますが、私は自動化されたコマンドラインツールからアプリケーションストアのリリースを行う傾向があるので、私はこの機能を使用しません。

+0

あなたの返事をありがとう。あなたは絶対に正しいですが、私はレガシーコードに取り組んでいます。ビルドはすでに配布されていますが、私はcrashlogのUUIDとdSYMファイルのUUIDを取得することについて考えていますが、正しいトリック。 – Nilesh

18

バイナリとdSYMをアーカイブする必要があります。各ビルドは、それぞれが同一のUUIDを持つ新しいものを作成するためです。

dwarfdump --uuid yourapp.app/yourappdwarfdump --uuid yourapp.app.dSYMを使用して、個々のバイナリのUUIDを確認できます。 mdfind "com_apple_xcode_dsym_uuids == 5255A87A-B23C-3AE8-B367-14B49C21C1D6" 注ここでUUIDは、大文字とフォーマット8-4-4-4-12に書かれた例である:あなたが行うことができますスポットライトを経由して、特定のUUIDとdSYMを検索するに

+0

素晴らしいこと、あなたの答えをありがとう、よく私はクラッシュログがビルドとdSYMファイルと一致しているかどうかをチェックしたい。ありがとう – Nilesh

+1

Spotlightのアドバイスを大変ご愛用ください! – Martin

関連する問題