Sentry
Sentryはエラー監視をやってくれるプラグインです。
UnityやWebアプリではよく使われてますがUE4、UE5に対応してるのに使ってる話をきかないので
「そんなもったいない!入れるだけでどこでクラッシュしてるかのQAとかはかどるのに!」
ってことでオイラが記事にしまーす(ΦωΦ)
Sentryの準備
SentryのプラグインはこちらのGithubからもってきます。
今回は4.27を使います。
5.0はUE5用なのでこのあと記事にします。
プロジェクトは好きなテンプレート使ってOKです。
ただ、Sentryを呼び出したり拡張したりがし易いようにクラスをやサブシステム作ったりできるように
C++で作っておくと楽でーす。
こんな感じにプラグインを入れておきます
-MyGame
-MyGame.uproject
-Config
-Content
-Plugins
-Sentry
-Sentry.uplugin
- :
そして、プロジェクトのbuild.csにも追記しておきます
-MyGame
PublicDependencyModuleNames.AddRange(new string[] { ..., "Sentry" });
その後プラグインが読み込まれたことを確認して
DSNを登録する箇所があるのでそこに必要なURLを入れます
URLに関しては登録したときに発行されるのでそちらを確認してください
■クラッシュポイント設定
クラッシュレポータエンドポイントの設定
クラッシュ レポーターとデバッグ ファイルが含まれるようになったので、UE4 はクラッシュをどこに送信するかを知る必要があります。
そのためには、"Client Keys" 設定ページにあります。
engine-dir\Engine\Programs\CrashReportClient\Config\DefaultEngine.ini
ここの
DataRouterUrl を変更します
それではそのへんの対応ができた
ってところでいきなりやると大変なので
サンプルプロジェクトがあるのでそれを使ってから
移植していくのが良いと思います。
それでは、サンプルプロジェクトからイベントとクラッシュをさせてみましょう
起動するとこんな画面になりメッセージやイベント、クラッシュが出ます
では
イベントの押してみますー
Sentyの管理画面のissuesにイベントやクラッシュ報告が出ます
イベント通知が来てますね!
イベントの中身を見るとどこで呼ばれたのか
何かしらの問題などの情報が見れます。
さらに、登録者の情報や
ゲームのIDやバージョンなども登録できるので
ユーザー情報を保持するタイプのゲームの場合
どんなユーザーがどんなイベント、エラーを踏んだのかを追いかけることができます。
さらに、アプリのバージョンやエンジンのバージョンものせられるので
開発中のデバッグでもう修正されてるエラーの報告があっても無駄な調査をしなくて済みます。
次はクラッシュさせてみます。
クラッシュのボタンを押すと
クラッシュレポートが出てきてー
まず、クラッシュした端末の情報とどんなクラッシュなのか
GPUの情報も飛んできます
次にエラー箇所なのですが
今回はぬるぽですねー。
ちなみに、場所はコードにあるのですがここです
他にもAssertにも対応してますので、開発中のデバッグで
「どこで起きたかわからないバグ」を調査や
「どのプラットフォームで起きたのかわかりにくい」なども
この管理画面で絞ることができるので便利です。
UE5でも使えるのでぜひ簡単にエラー監視を導入したい方や会社さんで使ってみてください(ΦωΦ)