App Center 诊断的工作方式

已完成

注意

.NET MAUI 是 Xamarin 的下一个演变,我们建议你使用其开发移动和桌面应用,可以在多个训练模块中了解有关 .NET MAUI 的详细信息。 此 Xamarin 训练模块将不会继续保留。

无论你的应用版本是处于测试人员手中,还是在应用商店中提供给客户,你都会希望他们具有可靠的体验。 不过,应用故障必然会发生,你需要尽可能多地了解导致应用故障的错误。 此数据可以帮助查找代码中的问题并快速修复。 在这种情况下,诊断数据可以提供帮助。

什么是诊断?

诊断是确定应用出现问题的时间,并找出该问题的原因。 App Center 提供了诊断服务,以帮助监视应用问题。 App Center 诊断软件开发人员工具包 (SDK) 使你可以收集找出应用问题的根源所需的诊断信息。

何时收集数据?

在使用 App Center 诊断 SDK,并且应用遇到导致应用崩溃的错误时,详细信息会在应用卸载之前写入本地存储。 由于应用遇到了意外错误,因此应用所处的状态不太可靠,不足以将数据发送到 App Center。 但是,当用户再次启动应用时,它会将诊断数据发送到 App Center。

注意

可以配置应用,以便用户可以通过隐私设置选择退出诊断数据提交过程。

当应用程序正在运行时,诊断还可以跟踪特定事件。 随后,如果应用遇到需要记录的错误,则来自这些事件的数据可用于跟踪发生错误时应用的状态。

手动收集错误数据

可以依靠自动系统来收集有关应用问题的详细信息。 但是,如果应用出现你希望阻止以防应用崩溃的问题,则可以编写代码来处理异常,同时仍将当前信息提交到 App Center 进行审查。 在错误处理代码(如 try/catch 块)中,可以调用 Crashes.TrackError 方法以将详细信息发送到 App Center,而不会让应用崩溃。 此手动错误数据收集当前仅适用于使用 Xamarin、Unity、WPF 和 WinForms SDK 的应用。

自定义收集的数据

发生应用问题时,App Center SDK 会自动为你收集数据,以便可以提交进行审查。 SDK 会收集基本设备信息和应用执行信息。 SDK 还会收集有关当前正在运行的线程的信息。

若要帮助诊断特定用户遇到的问题,还可以使用 SDK 将用户 ID 附加到故障和错误。 默认情况下,App Center 会为应用的每个安装分配唯一 ID,该 ID 不与任何标识用户信息关联。 但是,可以使用 SDK 将应用中的标识信息与安装 ID 关联。 例如,可以在用户登录帐户时创建关联,以便创建唯一的用户 ID。 向发送到 App Center 的数据分配用户 ID 之后,将能够搜索与特定用户 ID 关联的故障。

若要帮助确定错误的来源,还可以在提交错误详细信息之前包含附件。 在某些平台上,SDK 允许以键值对的形式附加自定义信息。

审查收集的诊断数据

应用收集诊断数据并发送到 App Center 后,你便要审查此数据。 可以从 App Center Web 门户查看收集的数据。 使用筛选和排序选项可以通过各种方式查看问题数据。 类似的错误会按错误的原因和在代码中出现的位置自动进行分组。

此外,可以在 App Center 中为应用配置警报。 确定了新故障组时,可以通过电子邮件通知相关人员或团队。

配置数据保留

将新数据提交到 App Center 时,默认情况下,它会将该数据存储 90 天。 如果要缩短持续时间(例如,如果需要遵守组织的数据保留策略),则可以将保留期减少到 28 天。

注意

当前只能将数据保持期配置为 90 天或 28 天。

如果要将数据保留较长时间,则可以使用 App Center API 配置 App Center 以将数据导出到 Azure Blob 存储。 通过持续导出较旧数据,可以维护所需数量的历史数据,以供以后报告使用。