iOS - Crashlytics 如何处理丢失的 dSYMS
iOS - How Crashlytics handles missing dSYMSs
我对 dSYMS 以及 Crashlytics 如何处理它们有疑问。
我的应用程序包含不同的目标,由于 Watchkit App
和 Watchkit App Extension
目标,整个项目使用 bitcode enabled
编译。
然后我按照 Missing dSYMs Documentation 手动上传我丢失的 dSYM。
它奏效了,必需的缺失 dSYM 现在在我的仪表板上以条纹显示。
但我想知道,它究竟是如何工作的?我的这个版本的应用程序在 AppStore 上有 1 个月。
我只能从今天(即我上传 dSYM 的日期)开始收到崩溃报告吗?
我应该为每个版本手动上传吗?
我不是很明白这个过程。
这里是来自 Fabric 的迈克。
dSYM 包含为您的应用程序提供完全符号化堆栈跟踪所需的符号。当您在 Xcode 中进行本地构建时,dSYM 位于您的本地计算机上,因此 Fabric run script build phase 可以上传它们。
启用 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,则崩溃将排队等待处理,处理和显示可能需要几分钟到几小时。
话虽如此,处理此问题的最佳方法是使用上传符号脚本将符号提供给我们,即使还没有报告丢失的 dSYM,这样我们在崩溃时就有了符号发生。如果我们在报告崩溃时拥有 dSYM,则崩溃将在几秒内(平均)得到处理。
另一种方法是使用 fastlane's refresh_dsyms 命令获取 dSYM 并上传它们。
我对 dSYMS 以及 Crashlytics 如何处理它们有疑问。
我的应用程序包含不同的目标,由于 Watchkit App
和 Watchkit App Extension
目标,整个项目使用 bitcode enabled
编译。
然后我按照 Missing dSYMs Documentation 手动上传我丢失的 dSYM。 它奏效了,必需的缺失 dSYM 现在在我的仪表板上以条纹显示。
但我想知道,它究竟是如何工作的?我的这个版本的应用程序在 AppStore 上有 1 个月。
我只能从今天(即我上传 dSYM 的日期)开始收到崩溃报告吗? 我应该为每个版本手动上传吗?
我不是很明白这个过程。
这里是来自 Fabric 的迈克。
dSYM 包含为您的应用程序提供完全符号化堆栈跟踪所需的符号。当您在 Xcode 中进行本地构建时,dSYM 位于您的本地计算机上,因此 Fabric run script build phase 可以上传它们。
启用 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,则崩溃将排队等待处理,处理和显示可能需要几分钟到几小时。
话虽如此,处理此问题的最佳方法是使用上传符号脚本将符号提供给我们,即使还没有报告丢失的 dSYM,这样我们在崩溃时就有了符号发生。如果我们在报告崩溃时拥有 dSYM,则崩溃将在几秒内(平均)得到处理。
另一种方法是使用 fastlane's refresh_dsyms 命令获取 dSYM 并上传它们。