iOS 应用程序具有神秘的 UUID,没有匹配的 dSYM,因此无法符号化

Posted

技术标签:

【中文标题】iOS 应用程序具有神秘的 UUID,没有匹配的 dSYM,因此无法符号化【英文标题】:iOS app has mysterious UUID with no matching dSYM so cannot symbolicate 【发布时间】:2016-01-30 17:22:52 【问题描述】:

我非常熟悉 ios 应用程序的崩溃日志是如何符号化的,但这是一个令人头疼的问题。

我的 MyApp 带有 build 2345,它通过 TestFlight 作为测试版发布,使用正常的存档,然后在 Xcode 7.2 (7C68) 中上传到 App Store 流程。

当我为 xcarchive 中的二进制文件执行 dwarfdump 时,我得到以下信息:

dwarfdump --uuid MyApp.app/MyApp
UUID: 0BDA6D6F-3C0D-339E-842F-C2CB04199E10 (armv7) MyApp.app/MyApp
UUID: B2A69BEC-DF5E-33EA-A9E0-490EBF03074C (arm64) MyApp.app/MyApp

这是 dSYM 文件的 dwarfdump:

dwarfdump --uuid MyApp.app.dSYM
UUID: 0BDA6D6F-3C0D-339E-842F-C2CB04199E10 (armv7) MyApp.app.dSYM/Contents/Resources/DWARF/MyApp
UUID: B2A69BEC-DF5E-33EA-A9E0-490EBF03074C (arm64) MyApp.app.dSYM/Contents/Resources/DWARF/MyApp

到目前为止,一切都很好。

但是,我通过 Organize > Crashes for build 2345 收到了崩溃,该版本具有不同的二进制 UUID:

0x100054000 - 0x1000fffff myapp arm64  <3715db2438743cf5aac1742d9a214c2c> /var/mobile/Containers/Bundle/Application/7313BC02-3F90-4F94-82E2-CBDC941E5D68/MyApp.app/myapp
0x100144000 - 0x1001e7fff AWSCore arm64  <c2aa13236d0437b98194c0487db69e68> /var/mobile/Containers/Bundle/Application/7313BC02-3F90-4F94-82E2-CBDC941E5D68/blink.app/Frameworks/AWSCore.framework/AWSCore
....

我确定崩溃报告是针对同一个版本的,但这里的 UUID 是 3715db2...,而我期望它是 b2a69bec...

我确实启用了位码,所以我尝试从 Organizer Archive 页面下载 dSYM(即使我构建了 arm64,所以 Apple 不应该这样做),它在崩溃报告中检索了其他 UUID/二进制文件的 dSYM,但是myapp 二进制文件没有。事实上,myapp 二进制文件是唯一没有下载相应 dSYM 的二进制文件!

所以有几个问题:

    3715db2438743cf5aac1742d9a214c2c 版本的 myapp 二进制从何而来? 我怎样才能获得它的 dSYM 以便我可以象征崩溃? Apple 没有通过 Xcode 中的“下载 dSYM”选项返回它。

【问题讨论】:

同样的问题。看起来它只发生在 arm64 上 【参考方案1】:

看来我找到了解决办法。

如果您启用了 Bitcode,这是可能的。要获得必要的 dSym,您应该使用“下载 dSYM...”按钮(Xcode / Organizer / Your Archive - 带有存档信息的右侧面板)或从 iTunes Connect 下载它们(活动选项卡,构建详细信息中的链接)。

最后一个选项对我的情况有所帮助。

【讨论】:

从 iTunesconnect 下载并上传 .zip 文件,但在 fabric.io 中仍然显示混乱的 DSYM @bLacKhoLE 真的很奇怪。 1)检查UUID是否正确的问题中的命令(dSYM确实包含必要的UUID,您可以通过捆绑构建和版本进行比较,这还不够); 2)在极少数情况下,处理 dSYM 需要时间(甚至可能是一小时),据我所知,您不会看到有关此的通知(所以请稍等)。事实上,我可以 100% 建议。【参考方案2】:
    dSYM 存储在您的 .xcarchive 中 右键单击管理器中的存档,然后显示包内容。它应该在那里。

【讨论】:

我知道它们存储在 .xcarchive 中,但问题是没有 dSYM 文件与崩溃报告中的二进制文件有匹配的 UUID。从 Apple 下载 dSYM 时也不显示。 有时 appstoreconnect 属性不正确的 UUID。这是该问题的潜在解决方案:***.com/a/68820976/1097106

以上是关于iOS 应用程序具有神秘的 UUID,没有匹配的 dSYM,因此无法符号化的主要内容,如果未能解决你的问题,请参考以下文章

(Kontakt.io) iBeacon didEnterRegion 没有被解雇

没有具有有效签名身份的配置文件。没有找到匹配的配置文件,xcode,ios

获取应用程序运行时归档时 dSYM 具有的 UUID

Xcode 错误:没有具有与捆绑标识符匹配的有效签名身份的配置文件

有没有办法在不使用测试器 UUID 的情况下使 iOS 应用程序可用于 beta 测试(临时应用程序)

正则表达式匹配信用卡号,除非它们出现在 UUID 中