使用例
取得可能なクラッシュレポートをすべて表示するサンプル
using UnityEngine; public class Example : MonoBehaviour { private void OnGUI() { var reports = CrashReport.reports; GUILayout.Label( "Crash reports:" ); foreach ( var r in reports ) { GUILayout.BeginHorizontal(); GUILayout.Label( "Crash: " + r.time ); if ( GUILayout.Button( "Log" ) ) { Debug.Log( r.text ); } if ( GUILayout.Button( "Remove" ) ) { r.Remove(); } GUILayout.EndHorizontal(); } } }
最新のクラッシュレポートを表示するサンプル
using UnityEngine; public class Example : MonoBehaviour { private void OnGUI() { var lastReport = CrashReport.lastReport; GUILayout.Label( "Crash last report:" ); if ( lastReport == null ) return; GUILayout.BeginHorizontal(); GUILayout.Label( "Crash: " + lastReport.time ); if ( GUILayout.Button( "Log" ) ) { Debug.Log( lastReport.text ); } if ( GUILayout.Button( "Remove" ) ) { lastReport.Remove(); } GUILayout.EndHorizontal(); } }
解説(公式のドキュメントの引用)
CrashReport クラスを使用することで、
iOS においてアプリがクラッシュした際に、アプリの次回起動時に、
クラッシュレポートを表示することができます(データを取得できた場合のみ)
クラッシュレポートのデータ取得を有効にするには下記の設定を行う必要があります
- Unity の iOS の PlayerSettings で
「Script Call Optimization」を「Fast but no Exceptions」に変更し、
「Enable CrashReport API」にチェックを入れる - Xcode プロジェクトの「Classes/CrashReporter.h」で定義されている
「ENABLE_CUSTOM_CRASH_REPORTER」を「0」から「1」に変更する