# 设置崩溃和异常报告

> Enable Crash and Exception Reporting in the Unity Editor, and configure advanced custom metadata for detailed crash reports.

在为项目设置崩溃和异常报告之前，请确保您已按照[入门指南](../getting-started-with-cloud-diagnostics)中概述的基本设置要求进行了设置。务必要有一个 Project ID 来将项目连接到 Unity Dashboard（Unity 后台）。使用基本的项目凭据设置好后台后，您就可以在 Unity 编辑器中为项目启用崩溃和异常报告。

要启用崩溃和异常报告，请执行以下操作：

1. 在 Unity 编辑器中打开您的项目。
2. 从 Unity 编辑器菜单中，选择 Window（窗口）> General（常规）> Services（服务），以打开 Services（服务）窗口。
3. 从 Services（服务）窗口中，选择 Cloud Diagnostics。
4. 选择 Crash and Exception Reporting（崩溃和异常报告）旁边的开关以打开该服务。

## 通过 Advanced Cloud Diagnostics 设置自定义报告##setting-up-customized-reports-with-advanced-cloud-diagnostics

默认情况下，崩溃和异常报告配置了设备操作系统等标准元数据。通过 Advanced Cloud Diagnostics，您还可以添加自定义元数据，以增加更多调试能力。这些自定义元数据可以在任何时候捕获，例如游戏首次初始化、加载新关卡，甚至是玩家执行特定操作时。

崩溃和异常报告中包含一个 [CrashReportHandler](https://docs.unity3d.com/Documentation/ScriptReference/CrashReportHandler.CrashReportHandler.html) 类，用于配置崩溃报告和自定义元数据。使用 [SetUserMetadata](https://docs.unity3d.com/Documentation/ScriptReference/CrashReportHandler.CrashReportHandler.SetUserMetadata.html) 方法最多可以向报告中添加 64 个自定义元数据条目。

使用以下语句来请求要跟踪的新元数据：

```cs
UnityEngine.CrashReportHandler.CrashReportHandler.SetUserMetadata(“key”, “value”);
```

## 触发测试报告##triggering-a-test-report

通过在 [Unity Dashboard（Unity 后台）](http://dashboard.unity3d.com/)中触发报告并进行查看，可以测试 Cloud Diagnostics 服务。通过使用 Debug.LogException() 方法抛出异常或记录异常消息，可以创建报告。为此，请在 C# Script 中找到希望测试异常发生的方法，比如在加载第一个屏幕时运行的方法，并添加以下行：

```cs
Debug.LogException(new Exception(“Testing Cloud Diagnostics reports”));
```

保存脚本并在运行模式下运行您的游戏。您应该能够在编辑器内的控制台中查看 Debug.LogException 消息。

## 查看测试报告##viewing-your-test-report

从 [Unity Dashboard（Unity 后台）](https://dashboard.unity3d.com/) 查看 Cloud Diagnostic 报告：

1. 打开 [Unity Dashboard（Unity 后台）](https://dashboard.unity3d.com/)。
2. 从顶部导航菜单的项目选择器中选择启用了 Cloud Diagnostics 的项目。
3. 从主导航菜单中，转到 **Suites（套件）**> **DevOps** > **Cloud Diagnostics** > **Crash and Exception Reporting（崩溃和异常报告）**。
4. 您的测试报告将位于 Problems（问题）部分。选择所需测试报告的标题以查看其数据。

## 设置新报告的通知##setting-up-notifications-for-new-reports

Cloud Diagnostics 通过集成支持报告通知功能，这样您就可以将开发工作流程与非 Unity 工具连接起来。您无需手动检查 Dashboard（后台）来查看是否报告了新的问题，而是可以通过电子邮件、Slack、Discord、Trello 等第三方集成来接收通知。

要设置报告通知，请执行以下操作：

1. 打开 [Unity Dashboard（Unity 后台）](https://dashboard.unity3d.com/)。

2. 从顶部导航菜单上的项目选择器中选择所需的项目。

   * 注意：在设置报告通知之前，请确保为该项目启用了崩溃和异常报告。

3. 从主导航菜单中，选择 **Projects（项目）**。

4. 从展开的下拉列表中，选择 **Project settings（项目设置）**> **Integrations（集成）**。

5. 选择 \*\*New Integration（新建集成）\*\*按钮并按照弹出窗口中的说明操作。

## 批处理模式支持##batch-mode-support

从 2018.4.1+ 和 2019.1.3+ 开始，在 [-batchmode](https://docs.unity3d.com/Manual/CommandLineArguments.html) 下运行 Unity 时，现在支持原生崩溃报告。在作为[服务器构建](https://docs.unity3d.com/Manual/BuildSettings.html)运行应用程序时，也支持原生崩溃报告。在批处理模式下运行时，请务必在命令行中同时指定 -username 和 -password，以避免出现 USYM\_UPLOAD\_AUTH\_TOKEN 错误。

## 后续工作##whats-next

现在您已经启用了崩溃和异常报告，下面请了解[如何理解和管理它们](./understanding-crash-and-exception-reporting.md)。
