如何将崩溃日志自动发送到 Xamarin.iOS 中的 HokeyApp 以及额外的信息?

How to Auto Send crash logs to HokeyApp in Xamarin.iOS with extra information?

我正在使用 Hockeyapp 记录我的 Xamarin 应用程序中的崩溃。
对于 Android,我使用此代码自动提交崩溃,几乎没有额外信息:
MainActivity OnCreate 方法内部:

CrashManager.Register(this, "APP_ID", new CustomCrashListener());

CustomCrashListener:

public class CustomCrashListener : CrashManagerListener
{
    public override bool ShouldAutoUploadCrashes()
    {
        return true;
    }

    public override string UserID => "UserID recovered from settings.";
    public override string Contact => "More info from settings.";
    public override string Description => "Custom Description";
}

现在 iOS 我发现这个自动上传崩溃:

AppDelegate 内部:

BITHockeyManager manager = BITHockeyManager.SharedHockeyManager;
manager.Configure("APP_ID");
manager.CrashManager.CrashManagerStatus = BITCrashManagerStatus.AutoSend;
manager.StartManager();
manager.Authenticator.AuthenticateInstallation();

我的问题是我在 iOS 中找不到类似于 Android 的东西来发送一些额外的小信息,自动发送崩溃日志,有没有iOS?

中的方法

在您的 UIApplicationDelegate class 上,添加 IBITHockeyManagerDelegate and/or IBITCrashManagerDelegate.

UIApplicationDelegate 示例:

[Register("AppDelegate")]
public class AppDelegate : UIApplicationDelegate, IBITHockeyManagerDelegate, IBITCrashManagerDelegate

分配给你的 BITHockeyManager.Delegate:

var hockeyManager = BITHockeyManager.SharedHockeyManager;
hockeyManager.Delegate = (HockeyApp.iOS.BITHockeyManagerDelegate)(IBITHockeyManagerDelegate)this;

实施您需要的额外信息方法:

// From IBITHockeyManagerDelegate
[Export("userIDForHockeyManager:componentManager:")]
public string UserIdForHockeyManager(BITHockeyManager hockeyManager, BITHockeyBaseManager componentManager)
{
    return "sushihangover";
}

[Export("userNameForHockeyManager:componentManager:")]
public string UserNameForHockeyManager(BITHockeyManager hockeyManager, BITHockeyBaseManager componentManager)
{
    return "Sushi Hangover";
}

[Export("userEmailForHockeyManager:componentManager:")]
public string UserEmailForHockeyManager(BITHockeyManager hockeyManager, BITHockeyBaseManager componentManager)
{
    return "sushihangover@hacktheplanet.me";
}

// From IBITCrashManagerDelegate
[Export("applicationLogForCrashManager:")]
public string ApplicationLogForCrashManager(BITCrashManager crashManager)
{
    return "Whosebug rocks...";
}

参考:https://support.hockeyapp.net/kb/client-integration-ios-mac-os-x-tvos/hockeyapp-for-ios#crashreporting