Jacinth 2017-12-11
xamarin上常用的崩溃分析工具有TestFlight,HockeyApp, Crashlytics等。TestFlight没用过,Crashlytics注册需要访问Google,不好弄,HockeyApp走通了,步骤记录如下:
1.配置HockeyApp
进入官网https://hockeyapp.net/#s,注册登录,之后进入界面
2.点击NewApp按钮,进入
点击manually,进入
选择Platform,填写Title,Bundle Identifier。对于Bundle Identifier,如果跑在simulator上,随便写,过会配置下就可以了,如果跑在真机上,要和XCode中指定的bundleID保持一致; 点击保存。等一会会生成,如下图中的app Test1.
点击Test1,打开如下
图中的1处就是Bundle Identifier,可以改的。图中2处就是App ID,下面代码中是要用的。
2.配置xamarin应用
vs2017打开IOS工程,Reference右键,Manage Nuget Packeges
找到HockeySDK.Xamarin安装
之后打开AppDelegate.cs
,在FinishedLaunching
方法中添加一下代码
public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
{
var manager = HockeyApp.iOS.BITHockeyManager.SharedHockeyManager;
manager.LogLevel = HockeyApp.iOS.BITLogLevel.Debug;
manager.Configure("b5f47e198c4f4ad9af72c4e7f49f71ff");//参数就是上面HockeyApp生成的App ID
manager.StartManager();
manager.Authenticator.AuthenticateInstallation(); // This line is obsolete in crash only builds
// Override point for customization after application launch.
// If not required for your application you can safely delete this method
return true;
}
这样应用就具有上传crash report的功能了,如果应用装到IOS设备上,再做一下配置
双击打开IOS工程中的Info.plist
配置下Application Name 和Bundle Identifier,和上面创建的HockeyApp应用保持一致。
ok,simulation跑起来,随便在代码的某一处,比如点击一个按钮触发一个异常,这个时候界面闪崩,当你再次启动这个应用的时候
会通知你让你发送crash report,点击Send Report
3.查看结果
再次进入HockApp,查看崩溃信息,里面有你很关心的崩溃信息呦。
参考英文文档:https://support.hockeyapp.net/kb/client-integration-cross-platform/how-to-integrate-hockeyapp-with-xamarin