15

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

クラッシュログと dSYM の両方が同じビルドに属しているかどうかを確認する方法はありますか??

よろしく、

4

3 に答える 3

27

ビルドごとに同じUUIDを持つ新しいビルドが作成されるため、バイナリとdSYMをアーカイブする必要があります。

とを使用dwarfdump --uuid yourapp.app/yourappdwarfdump --uuid yourapp.app.dSYMて、個々のバイナリのUUIDを確認できます。

Spotlightを介して特定のUUIDを持つdSYMを検索するには、次の操作を実行できます。mdfind "com_apple_xcode_dsym_uuids == 5255A87A-B23C-3AE8-B367-14B49C21C1D6" ここでのUUIDは、大文字で8-4-4-4-12の形式で記述された例であることに注意してください。

于 2012-04-03T09:59:28.410 に答える
19

返信ありがとうございます。とても助かります。dSYMファイルのcrashlog間の関係を見つける適切な方法を見つけました。私はこれをあなたと共有しています:

したがって、まず、すべてのクラッシュログとdSYMを単一のディレクトリに保持し、次のコマンドを実行します。これらのコマンドを使用すると、アプリケーションのUUIDとクラッシュログのUUIDが適切に一致する場合に提供されます。また、コマンドを実行する前に、このすべてのファイルを保存したのと同じフォルダーにいることを確認してください。

まず、コマンドを実行します。

mdls YourApp.app.dSYM  

次の結果が得られます(サンプル):

com_apple_xcode_dsym_paths =( "Contents / Resources / DWARF / YourApp") com_apple_xcode_dsym_uuids =( "9AD4BCAF-C847-38B1-9055-CF4221BE2F65") kMDItemContentCreationDate = 2012-08-27 08:42:40 +0000 kMDItemContentModificationDate = 2012-08-27 08: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-08 -27 08:42:40 +0000 kMDItemFSCreationDate = 2012-08-27 08:42:40 +0000 kMDItemFSCreatorCode = ""kMDItemFSFinderFlags = 0 kMDItemFSHasCustomIcon = 0 kMDItemFSInvisible = 0 kMDItemFSIsExtensionHidden = 0 kMDItemFSIsStationery = 0 kMDItemFSLabel = 0 kMDItemFSName = "YourApp.app.dSYM" kMDItemFSNodeCount = 1 kMDItemFSOwnerGroupID = 0 kMDItemFSName = "YourApp.app.dSYM" kMDItemFSNodeCount = 1 kMDItemFSOwnerGroupID = 20 58267749 kMDItemPhysicalSize = 58273792kMDItemKind="パッケージ"kMDItemLogicalSize= 58267749 kMDItemPhysicalSize = 58273792kMDItemKind="パッケージ"kMDItemLogicalSize= 58267749 kMDItemPhysicalSize = 58273792

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

次のコマンドを実行します。

grep "+YourApp" *crash 

これにより、次の結果が得られます。

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

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

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

于 2012-09-09T08:53:23.253 に答える
2

.app ファイルを作成したら、dSYM をアーカイブすることになっています。すべてのビルドは、ソースが同じであっても、まったく異なる dSYM ファイルを生成できます。

.app ファイルに、バージョン番号を含む一意のファイル名がありますか? その場合、その名前はクラッシュ ログの 5 行目付近の Path: の横にあります。

これ以外に、あるものを他のものと関連付ける組み込みの方法は他にないと思います。

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

于 2012-04-02T13:51:19.533 に答える