来自 Fabric 的 Mike。
dSYM 包含提供完全符号化堆栈跟踪所需的应用程序符号。当您在 Xcode 中本地构建时,dSYM 位于您的本地计算机上,因此 Fabric运行脚本构建阶段可以上传它们。
启用 Bitcode 后,Apple 将在其服务器上重新编译您的应用程序,从而创建新的 dSYM。由于它发生在他们的服务上,Fabric 无法自动上传这些。Apple 确实通过 Xcode 或 iTunesConnect 提供了 dSYM。由于我们无法访问这些 dSYM(我们需要您的 Apple 开发人员凭据,而我们不想拥有它们),因此您确实需要从 Apple 获取 dSYM,并通过 Apple 或 Testflight 将它们上传到 Fabric 中。您还可以使用upload-symbols脚本批量上传它们。上传符号脚本也适用于 CI 机器。
当 Fabric 发生崩溃时,我们会查看是否具有象征崩溃所需的 dSYM。如果我们不这样做,我们将通过仪表板和您的 Fabric 应用程序设置页面提醒您。如果崩溃缺少 dSYM,我们会将其存储 7 天。如果此时没有上传丢失的 dSYM,那么我们将丢弃崩溃而不处理它。如果上传了丢失的 dSYM,则崩溃会排队等待处理,处理和显示可能需要几分钟到几小时。
话虽如此,处理此问题的最佳方法是使用 upload-symbols 脚本向我们获取符号,即使还没有报告丢失的 dSYM,以便我们在发生崩溃时拥有符号。如果在报告崩溃时我们有 dSYM,则崩溃将在几秒钟内(平均)内得到处理。
另一种方法是使用fastlane 的 refresh_dsyms命令获取 dSYM 并上传它们。