Visual Studio App Center:在Xamarin iOS上无法运行的崩溃和错误

时间:2018-03-26 10:03:22

标签: xamarin xamarin.ios crash-reports visual-studio-app-center

在我的Xamarin iOS应用中,我启用了AppCenter的分析和崩溃,如何解释:https://docs.microsoft.com/en-us/appcenter/sdk/getting-started/xamarin

Analytics可以运行,但我无法在App Center Web控制台的“诊断”部分看到任何崩溃/错误。 在故障排除页面中写道,在iOS上,它不仅仅是一个异常处理工具,而且这是唯一的一个。在我的应用中,我启用了FCM,因此有Firebase,我尝试删除对Firebase的任何引用,但没有任何更改。

启用AppCenter.LogLevel = LogLevel.Verbose;我可以看到app崩溃时AppCenter尝试存储异常(“将日志存储到崩溃”),但是在我看到“找到空缓冲区位置”之后。在重新启动时,我看到调用了SendingErrorReport回调,但忽略了SentErrorReportFailedToSendErrorReport

在AppCenter.Start之后我尝试拨打await Crashes.SetEnabledAsync(true)。如果我让它崩溃,当我重新打开应用程序时,我会调用ErrorReport crashReport = await Crashes.GetLastSessionCrashReportAsync()崩溃报告始终为空。

在符号部分,我可以读到“你太棒了!没有不受约束的崩溃”。我试图在Debug和Release中编译。我尝试启动新的例外并使用Crashes.GenerateTestCrash

使用Xamarin.Forms应用程序使用Analytics和Crash时没有任何问题。

2 个答案:

答案 0 :(得分:2)

这种配置也适用于我:

using Microsoft.AppCenter.Crashes;

AppCenter.Start(Settings.AppCenterConfigString, typeof(Analytics), typeof(Crashes) /*, typeof(Push)*/);
Crashes.NotifyUserConfirmation(UserConfirmation.AlwaysSend);

自定义异常(错误)日志记录:

catch (Exception e) { Crashes.TrackError(e, ...); }

https://docs.microsoft.com/en-us/appcenter/sdk/crashes/xamarin#ask-for-the-users-consent-to-send-a-crash-log

答案 1 :(得分:2)

最后,经过多次尝试和试用,我发现您必须重写一个不同的FinishedLaunching方法,该方法提供UIApplicationNSDictionary参数。

public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
        {
            AppCenter.LogLevel = LogLevel.Verbose; //just so you can see in debug //that it is running successfully
            AppCenter.Start(#your app id#, typeof(Crashes));
}

不客气;-)


  1. 错误日志将在下次加载应用时上载,因此单击按钮将其崩溃,然后关闭该应用并将其从最近的应用中删除。
  2. 再次启动应用程序并等待片刻,然后查看网络用户界面
  3. 根据操作系统版本,您还必须在info.plist
  4. 中添加以下代码

    <key>NSAppTransportSecurity</key>
      <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
      </dict>