我正在使用 Hockeyapp 记录 Xamarin 应用程序中的崩溃。
对于 Android,我使用此代码自动提交崩溃,几乎没有额外信息:
MainActivity OnCreate 方法内部:
CrashManager.Register(this, "APP_ID", new 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
类上,添加 IBITHockeyManagerDelegate
和/或 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 "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="5c2f292f3435343d323b332a392e1c343d3f372834392c303d323928723139" rel="noreferrer noopener nofollow">[email protected]</a>";
}
// From IBITCrashManagerDelegate
[Export("applicationLogForCrashManager:")]
public string ApplicationLogForCrashManager(BITCrashManager crashManager)
{
return "StackOverflow rocks...";
}
关于ios - 如何自动将崩溃日志发送到 Xamarin.iOS 中的 HokeyApp 以及额外信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41714627/