Лирическое отступление
Однажды, при собеседовании в одну компанию мне задали вопрос «Есть приложение, которое вдруг падает, пользователь обижен и больше не хочет запускать это приложение, никакие формы обратной связи заполнять не настроен, как разработчику узнать об этом инциденте?».
Тогда я не знал, как ответить на данный вопрос, я предполагал вести лог, и при каждом запуске программы проверять его, предполагал отлавливать на уровне Application все исключения и автоматически отправлять разработчику stack-trace и тп, но как оказалось, все намного проще.
В данной вольной статье-переводе я и опишу то, как это можно сделать используя AppHub.
Упало приложение? AppHub Windows Phone и отчетность о крахах
Любой разработчик вам расскажет, что отладка приложений в продакшене (production environments) представляет собой уникальный опыт и приложения на Windows Phone не исключения.
С новой версией AppHub для разработчиков отладка исключений, произошедших в вашем приложении на телефоне, только что стала немного проще. Для зарегистрированных разработчиков AppHub теперь позволяет изучать здоровье (health) своих приложений, вести подсчет крахов и исследовать из-за чего это произошло.
Открыв AppHub теперь вы увидите секцию под названием App Highlights где перечислены ваши приложения и их последние загрузки и падения.
Пример, приложение Windows Phone Stopwatch было 34 раза некорректно завершено (с примерно 50 000 загрузками) и получить более детальную информацию можно кликнув по количеству крахов. Если вы случайно нажмете на имя приложения, то он покажет страницу краткого содержания этого приложения, вместо страницы с падениями.
На странице количества падений вы можете увидеть подробный график падений приложения за настраиваемый период времени.
Вы можете скачать таблицу (spreadsheet) в которой вы получите доступ к детальной информации необходимой для дальнейшего изучения падения приложения, к примеру, текст исключения и стек вызовов.
Вот так это будет выглядеть в нашем случае:
Скорее всего, вы захотите изучить стек вызовов, для более читаемого вида можно изменить свойства ячейки, как показано ниже.
С включенной опцией разбиения (Wrap) текста стек вызовов выглядеть намного лучше.