Visual Studio 应用程序中心:在 Xamarin iOS 上无法运行的崩溃和错误

问题描述 投票:0回答:2

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

分析有效,但我在应用程序中心 Web 控制台的诊断部分看不到任何崩溃/错误。 在故障排除页面中写道,在 iOS 上只能是一种异常处理工具,而且这是唯一的一个。在我的应用程序中,我启用了 FCM,因此存在 Firebase,我尝试删除对 Firebase 的任何引用,但没有任何变化。

启用

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

AppCenter.Start 之后,我尝试拨打

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

在符号部分我可以读到“你太棒了!没有未符号化的崩溃”。我尝试在调试和发布中进行编译。我尝试启动一个新的异常并使用

Crashes.GenerateTestCrash

我在 Xamarin.Forms 应用程序中使用 Analytics 和 Crash 时没有遇到任何问题。

xamarin xamarin.ios crash-reports visual-studio-app-center
2个回答
3
投票

这种配置对我来说也很有效:

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://learn.microsoft.com/en-us/appcenter/sdk/crashes/xamarin#ask-for-the-users-consent-to-send-a-crash-log


2
投票

最后,经过大量的点击和尝试,我发现你必须重写一个不同的

FinishedLaunching
方法,它提供
UIApplication
NSDictionary
参数。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.