我有很多来自不同用户的崩溃日志,我有不同的构建和 dSYM 文件现在我如何确保特定的崩溃日志属于哪个构建和 dSYM 文件。
有什么方法可以检查 crashlog 和 dSYM 是否属于同一个版本...??
问候,
我有很多来自不同用户的崩溃日志,我有不同的构建和 dSYM 文件现在我如何确保特定的崩溃日志属于哪个构建和 dSYM 文件。
有什么方法可以检查 crashlog 和 dSYM 是否属于同一个版本...??
问候,
您必须归档二进制文件和 dSYM,因为每次构建都会创建新的,每个都具有相同的 UUID。
您可以使用dwarfdump --uuid yourapp.app/yourapp
和dwarfdump --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。
好的,谢谢大家的回复,对我帮助很大。我已经找到了在 dSYM 文件中找到崩溃日志之间关系的正确方法。我和你分享这个:
因此,首先将所有崩溃日志和 dSYM 保存在一个目录中并运行以下命令,如果它们与您匹配得好,则为您提供应用程序的 UUID 和崩溃日志的 UUID。在运行命令之前,请确保您位于保存所有这些文件的同一文件夹中。
首先运行命令:
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-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 = 20 kMDItemFSOwnerUserID = 501 kMDItemFSSize = 58267749 kMDItemFSTypeCode = “” kMDItemKind = “包” kMDItemLogicalSize = 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
因此,在此结果中,您将再次找到一个 32 位字符串(粗体),它是您的应用程序二进制文件的 UUID。如果此 UUID 与您的 dSYM 文件 UUID 匹配,则它们属于同一构建。
这就是我所观察到的。我再次对所有回复投了赞成票,感谢回复不断帮助人们祝你好运..:)
您应该在创建 .app 文件后归档您的 dSYM。每个构建,即使使用相同的源,也可以生成完全不同的 dSYM 文件。
您的 .app 文件是否有唯一的文件名,其中包含版本号?如果是这样,该名称将出现在您的崩溃日志中,大约在第 5 行,在 Path: 旁边。
除此之外,我认为没有任何其他内置方式可以将一个与另一个相关联。
养成每次发布都保存 dSYM 文件的习惯。我相信您可以使用 Xcode 存档来做到这一点 - 但我倾向于从自动化命令行工具发布我的应用商店,所以我不使用此功能。