上报错误
众所周知,软件项目的交付是一个复杂的过程,任何原因都有可能导致交付的失败。很多时候经常遇到的一个现象是,应用在开发测试时没有任何异常,但一旦上线就问题频出。出现这些异常,可能是因为不充分的机型适配或者用户糟糕的网络状况造成的,也可能是Flutter框架自身缺陷造成的,甚至是操作系统底层的问题。
而处理此类异常的最佳方式是捕获用户的异常信息,将异常现场保存起来并上传至服务器,然后通过分析异常上下文来定位引起异常的原因,并最终解决此类问题。
目前为止,我们已经对应用中出现的所有未处理异常进行了捕获,不过这些异常还只能被保存在移动设备中,如果想要将这些异常上报到服务器还需要做很多的工作。
目前,支持Flutter异常的日志上报的方案有 Sentry、Crashlytics 等。其中,Sentry 提供的 Flutter 插件可以帮助开发者快速接入日志上报功能。Crashlytics 是 Flutter官方支持的日志上报方案,开源且免费,缺点是没有公开的 Flutter 插件,而 flutter_crashlytics 插件接入起来也比较麻烦。
Sentry 是一个商业级的日志管理系统,支持自动上报和手动上报两种方方。在目前的 Flutter 开发中,Sentry 针对 Flutter 已经很成熟,可以同时收集 Dart、Flutter、原生端的错误,而且 Sentry 对个人项目是免费的。
使用 Sentry 之前,需要先在官方网站注册开发者账号。如果还没有 Sentry 账号,可以先注册一个,然后再创建一个 Flutter 工程。