首页 文章

UWP:崩溃报告和事件跟踪

提问于
浏览
0

我为客户开发了一个 UWP app :因为我们遇到了一些错误,我可以实现崩溃报告解决方案 .

HockeyApp

我第一次使用像这样的HockeyApp来使用崩溃报告:

HockeyClient.Current.Configure("xxxxxx",
  new TelemetryConfiguration() { EnableDiagnostics = true })
    .SetExceptionDescriptionLoader((Exception ex) =>
    {
      return "Exception HResult: " + ex.HResult.ToString();
    });

但正如在another topic上所解释的那样,报告了崩溃,但这并没有得到 enough details .

所以有人建议我已经将 .pdb files 从商店上传到HockeyApp:但这次是来自崩溃的符号和 .pdf files don't match .

我决定使用 TrackEvent 来分析问题 . 我已经通过添加以下内容对函数进行了一些测试:

Microsoft.HockeyApp.HockeyClient.Current.TrackTrace("MyViewModel - CheckUser()");

events are not reported in HockeyApp ......

=> Would you have an explanation? Did I forgot anything? I will publish a new package on the Store and re-upload the .pdb files to HockeyApp, but I don't see what I could do else...

AppCenter

由于 AppCenter 现在可用于UWP,我've done the same tests. I'已经实现了AppCenter,如下所示:

AppCenter.Start("xxxxxx-xxx"
  , typeof(Analytics)
  , typeof(Crashes));

但与HockeyApp不同, crashes are not reported at all . AppCenter可以很好地识别应用程序,因为当应用程序启动时,"Crashes"选项卡上会添加一个带有当前版本号的条目 .

我还添加了以下事件:

Analytics.TrackEvent("MyViewModel - CheckUser()");

但这次是 events are well reported in AppCenter .

=> Did anyone ever use AppCenter for Crash Report on UWP? Is there anything else to add?

结论

现在我必须使用2个工具,但它并没有真正的帮助:

  • HockeyApp for crash report

  • AppCenter for Events

=>Do you have any other suggestions or tools that could help me?

2 回答

  • 0

    我决定使用TrackEvent来分析问题...但是HockeyApp中没有报告事件......

    如果要使用TrackEvent,则需要使用TrackEvent()API而不是TrackTrace() .

    HockeyClient.Current.TrackEvent("Button Clicked");
    

    您可以通过登录帐户来检查HockeyApp仪表板中的自定义事件 - >单击应用程序 - >事件 .

    请注意,自定义事件不会立即显示,通常需要大约10-15分钟 . 它也有限制 . 见here .

    正如您所提到的,您需要将正确的.pdb文件上传到HockeyApp仪表板,之后崩溃将被符号化 .

    您上传的应用程序似乎是商店版本 . 因此您需要从Windows Dev Store下载.pdb文件 . 见here .

    您可以通过比较崩溃中的.pdb和二进制映像的ID来检查它是否是正确的 . 例如,
    symbol I upload

    BinaryImage of crash
    两者都是e5502c5ddc5748a899a8182d8a52a659,这意味着.pdb文件是正确的 .

    此外,为了获得符号化的崩溃,您需要确保您所做的崩溃来自Store版本(从Windows应用商店下载) . 您不能使用测试版或使用来自Store的.pdb直接从Visual Studio崩溃您的应用 .

    至于AppCenter,它是下一代HockeyApp,它仍在预览中 . Windows上的崩溃报告现在要求通过Windows应用商店分发应用程序,但尚未支持版本崩溃 . 你可以参考官方文档here . 但是从长远来看它将取代HockeyApp,因此您可以等待App Center的正式发布 .

  • 0

    我们也遇到了与您相同的问题,但好消息是,您现在也可以使用AppCenter SDK进行崩溃报告 . https://docs.microsoft.com/en-us/appcenter/sdk/crashes/uwp . 你完成它的方式应该适用于新版本的NuGet:

    AppCenter.Start(“xxxxxx-xxx”,typeof(Analytics),typeof(Crashes));

    我用一个比以前更新版本的NuGet进行了一个小测试,现在是1.4,我正在测试

    Crashes.GenerateTestCrash();
    

    当您在以前的版本中尝试过这个时,intellisense表示它尚未可用于UWP,但现在可以执行了 .

    然而,在AppCenter门户中浏览测试崩溃,显示“我们的结果出了问题” . 这可能会“加速”加班,但表示App Center中的Crash报告确实仍在预览中 .

    我还建议使用“导出”功能到Application Insights深入挖掘日志 .

相关问题