# クラッシュと例外のレポートの設定

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

プロジェクトでクラッシュと例外のレポートを設定する前に、[使用の準備ガイド](../getting-started-with-cloud-diagnostics) に記載されている基本的な設定の要件に従っていることを確認してください。プロジェクトを Unity Dashboard に接続するためのプロジェクト ID があることが重要です。ダッシュボードで基本的なプロジェクト認証情報を設定したら、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

デフォルトでは、クラッシュと例外のレポートは、デバイス OS などの標準メタデータで設定されます。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](http://dashboard.unity3d.com/) で表示することで、Cloud Diagnostics サービスをテストします。例外をスローするか、Debug.LogException() メソッドを使用して例外メッセージをログに記録して、レポートを作成します。これを行うには、C# スクリプト内でテスト例外を発生させたいメソッド (最初の画面がロードされたときに実行されるメソッドなど) を見つけ、以下の行を追加します。

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

スクリプトを保存し、再生モードでゲームを実行します。エディター内のコンソールに Debug.LogException メッセージが表示されるはずです。

## テストレポートの表示##viewing-your-test-report

[Unity Dashboard](https://dashboard.unity3d.com/) から以下のように Cloud Diagnostics レポートを表示します。

1. [Unity Dashboard](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 以外のツールに接続できます。ダッシュボードを手動でチェックして新しい問題がレポートされているかどうかを確認する代わりに、E メール、Slack、Discord、Trello などのサードパーティとのインテグレーションによる通知を受信できます。

レポート通知を設定するには、以下を行います。

1. [Unity Dashboard](https://dashboard.unity3d.com/) を開きます。

2. 上部のナビゲーションメニューのプロジェクトセレクターから、プロジェクトを選択します。

   * ノート: レポート通知を設定する前に、このプロジェクトでクラッシュと例外のレポートが有効になっていることを確認してください。

3. メインナビゲーションメニューから、**Projects** (プロジェクト) を選択します。

4. 展開されたドロップダウンリストから、**Project settings** (プロジェクト設定) > **Integrations** (インテグレーション) を選択します。

5. **New Integration** (新しいインテグレーション) ボタンを選択し、ポップアップモーダルの指示に従います。

## バッチモードのサポート##batch-mode-support

2018.4.1+ および 2019.1.3+ では、Unity を [-batchmode](https://docs.unity3d.com/Manual/CommandLineArguments.html) で実行する場合にネイティブクラッシュレポートがサポートされるようになりました。ネイティブクラッシュレポートは、アプリケーションを [サーバービルド](https://docs.unity3d.com/Manual/BuildSettings.html) として実行する場合にもサポートされます。バッチモードで実行する場合には、USYM\_UPLOAD\_AUTH\_TOKEN エラーが発生しないように、コマンドラインで -username と -password の両方を必ず指定してください。

## 次のステップ##whats-next

クラッシュと例外のレポートを有効にしたので、次は [それらを理解して管理する](./understanding-crash-and-exception-reporting.md) 方法を学びましょう。
