デバッグシンボルについて

シンボルは、プログラムのアドレスを関数名にマップします。クラッシュと例外のレポートで、数値アドレスではなく人間が読める関数名でネイティブクラッシュのスタックトレースを提供できるようにします。実行ファイル自体に格納できますが、通常は実行ファイルのサイズを小さくするために別のファイルに格納されます。

クラッシュと例外のレポートでは、以下の 2 つのシンボルのセットを使用します。

  • システム (OS) シンボル: システムシンボルは OS サプライヤーによって生成され、OS によって形式が異なります。Apple プラットフォームは dSYM フォルダーを使用し、Android シンボルは .so ファイルに格納され、Windows シンボルは .pdb ファイルに格納されます。Unity は、Apple、Google、Microsoft によって生成されるシンボルをサポートしています。
  • アプリケーション (Unity) シンボル: アプリケーションシンボルは、Unity プロジェクトのビルド時に自動生成されます。

クラッシュと例外のレポートに欠落しているシンボルファイルがある場合、それらは数値アドレスで表示されるため、問題の診断が困難になる可能性があります。クラッシュと例外のレポートサービスでシンボルファイルをアップロードすると、レポート内の問題を特定しやすくなります。

欠落しているシステムシンボルについて

シンボルファイルは汎用一意識別子 (UUID) またはグローバル一意識別子 (GUID) を持ち、それが実行ファイルの ID と正確に一致している必要があります。クラッシュと例外のレポートでは、ライブラリまたはモジュールと一致する ID を持つシンボルファイルをサービスがロードできない場合、以下のエラーが生成されます。

これが発生する場合、通常は Cloud Diagnostics にそのバージョンの OS 用のシンボルがないことが問題です。iOS やその他の Apple プラットフォームでは、古いバージョンの OS 用のシンボルを入手するのが困難な場合があります。

その場合は、別のバージョンの OS に対する同様のクラッシュレポートがないかどうかを調べます。ある場合は、そのバージョンの OS でデバッグすることで問題を解決できる可能性があります。

欠落しているアプリケーションシンボルについて

アプリケーションシンボルが欠落しているレポートでは、スタックトレースに以下の行が含まれます。

クラッシュと例外のレポートが有効になっているプロジェクトをビルドする際、Unity はシンボルファイルを生成し、クラッシュと例外のレポートサーバーにアップロードします。このプロセスが失敗すると、シンボルの欠落を示すメッセージが Unity Dashboard に表示されます。

シンボルのアップロード失敗のトラブルシューティングを行うには、Unity の主なログ と同じフォルダー内にある symbol_upload.log ファイルをチェックします。検出されて処理されたシンボルと、それらのシンボルの処理中およびアップロード中に発生したエラーが示されているはずです。

次のステップ

クラッシュと例外のレポートに欠落しているシンボルがある場合は、ダッシュボードからシンボルファイルをアップロードします。シンボルファイルのアップロード を参照してください。