更改 dsym 文件中的 uuid

Posted

技术标签:

【中文标题】更改 dsym 文件中的 uuid【英文标题】:Change uuid in dsym file 【发布时间】:2017-05-29 07:50:11 【问题描述】:

我一直在尝试更改生成的 dsym 文件的 uuid,以便 crashlytics 可以将崩溃日志与 dsym 匹配。

你知道有什么方法吗?

更多上下文:

在构建期间上传 dsym 的脚本失败,我没有注意到。 Bitcode 被禁用,因此 iTunes connect 中没有 dsym 文件。 我能够从完全相同的源代码构建项目,因此来自dsym 的符号化崩溃日志应该可以工作 我仍在尝试从 crashlytics 获取崩溃日志,但他们的 UI 不支持它,因此我寻求他们的支持,然后我应该能够在本地对其进行符号化。

【问题讨论】:

为什么不尝试找到包含在 .xcarchive 文件中的原始 dsym 文件? @KevinLi 如果原始 .xcarchive 丢失了怎么办 你找到解决办法了吗? 【参考方案1】:

如果你有完全相同的源代码和编译器版本,你可以重新构建它并替换新的 uuid。

为了实现这个运行dwarfdump -u <yourapp>.dSYM查看新的uuid。然后用十六进制编辑器打开<yourapp>.dSYM/Contents/Resources/DWARF/<yourapp>,找到新的uuid并替换为你需要的。

【讨论】:

以防万一有人对如何使用十六进制编辑器更改 UUID 感到困惑,这篇文章是正确的(我不是作者):mcomisso.me/2016/07/05/edit-dsym-to-fit-a-missing-uuid【参考方案2】:

更改 dSYM 的 UUID 的步骤:

    安装 MachO 查看器/编辑器。我用过这个:https://sourceforge.net/projects/machoview/ 使用 MachO 编辑器打开位于 dSYM 中的 DWARF 文件:XXX.dSYM/Contents/Resources/DWARF/<BINARY_NAME> 在 MachO 编辑器中,找到“加载命令 -> LC_UUID”,然后将现有 UUID 编辑为您需要匹配 Crashlytics 的 UUID。 (见截图) 确保保存更改。 使用dwarfdump -u XXX.dSYM 验证UUID 是否已成功更改。

【讨论】:

以上是关于更改 dsym 文件中的 uuid的主要内容,如果未能解决你的问题,请参考以下文章

dsym 更多信息显示——

为啥我的应用存档中有很多 UUID dsym?

Firebase Crashlytics 为 UUID 上传丢失的 dSYMs 文件

Xcode - UUID 与框架 dSYM 不匹配

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

在本地查找 dSYM 文件