しばやん雑記

Azure とメイドさんが大好きなフリーランスのプログラマーのブログ

App Center で UWP のクラッシュログを収集する

Azure Mobile Center が App Center になってから少し後に、UWP 向けの SDK がアップデートされてクラッシュログの収集にも対応したらしいので、すぐにアップデートしました。

Getting Started に書いてある通りのコードを追加して、ストア出しても一向にクラッシュログが送られてくる気配がありませんでした。

f:id:shiba-yan:20171209003747p:plain

App Center を使う場合には、App クラスのコンストラクタに初期化コードを書いておけば良いです。実際に Getting Started に記載されているコードは以下のような形です。

AppCenter.Start("app_secret", typeof(Analytics));

Analytics はちゃんと表示できるようになりましたが、クラッシュだけは来ません。Learn more を開いても、Getting Started に飛ばされるだけで、コード的には問題ないように見えました。

f:id:shiba-yan:20171209004513p:plain

Crashes のページはいつまでたっても Collecting Data のままでした。

いい加減に疑問に思って調べたら、クラッシュログを収集するためには別のライブラリをインストールして、AppCenter.Start メソッドにコードを追加する必要があることが分かりました。

マジで最初から書いておいてほしい。

Microsoft.AppCenter.Crashes を NuGet からインストールしたら、AppCenter.Start は params で Type を渡せるようになっているので、typeof(Crashes) を追加すればおしまいです。

AppCenter.Start("app_secret", typeof(Analytics), typeof(Crashes));

ストアで配信されるようになると、App Center でクラッシュログが収集出来るようになりました。

f:id:shiba-yan:20171209220102p:plain

スタックトレースがちゃんと見れるので、Developer Dashboard より使いやすいですね。

ちゃんと PDB を考慮してくれているかは、もうちょっとサンプルが増えてみないとわからないですが、たぶん見ている気がします。