Flutter快学快用24讲--20 安全保障:Flutter 工具化实现线上安全与稳定

本文介绍了如何创建一个通用的Flutter异常上报模块,结合Sentry平台实现异常监控和告警。通过修改main.dart,异常捕获和上报,以及Sentry的接入步骤,确保线上App的安全运营。此外,文中还提及了App的重构部分,将Provider逻辑移至单独模块,以简化main.dart代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本课时将实现一个通用的 Flutter 异常上报模块,为线上运营提供上报与监控安全保障,其次借助 Sentry 平台实现异常告警和管理功能。我们先来看下 App 的线上安全包括哪些点。

线上安全运营

在上线每个客户端版本时,我们都要有一个 crash 标准,由于客户端发布后是无法回滚的,因此在发布时需要使用数据来辅助判断,这里就需要使用 crash 率来辅助判断是否需要进一步灰度更多用户。要做到这点,就需要将客户端异常的报错问题,上报到平台。Android 和 iOS 都有类似的功能模块,在 Flutter 官网 也介绍了相应的理论方法,大家可以前往官网进行了解。写这篇专栏的目的是希望将该功能作为通用模块,并且实践该过程。

接下来我们就看看,如何利用官网的理论知识,将该功能封装为一个通用的异常上报模块。

通用上报模块

根据官网的文档,我们将该过程分为三个步骤:

  1. 修改 main.dart 中的 main 函数;

  2. 异常捕获;

  3. 捕获内容上报。

接下来我们就分别看看三个过程中的实现原理。

第一步:修改 main.dart 中 main 函数

在我们之前项目代码逻辑的 main 函数中,都是使用下面的代码方式来启动运行 Flutter 项目。

/// App 核心入口文件 
void main() { 
  runApp(MyApp()); 
}

由于需要 catch 异常,因此我们将 runApp 执行放到异常捕获模块中去执行,修改如下的方式。

import 'package:two_you_friend/util/tools/app_sentry.dart'; 
/// App 核心入口文件 
void main() { 
  AppSentry.runWithCatchError(MyApp()); 
}

这里引入了通用异常捕获模块,后续你在项目中,也可以直接使用该模块实现上报,接下来我们来看下 AppSentry 的实现异常捕获逻辑。

第二步:异常捕获

该功能的实现会应用到 FlutterError 和 runZonedGuarded 两个知识点。

在 Flutter 中可以通过 FlutterError 来捕获到运行期间的错误,包括构建期间、布局期间和绘制期间。

runZonedGuarded 则是使用 Zone.fork 创建一片新的区域去运行代码逻辑,也就是 runApp,当遇到错误时会执行其回调函数 onError,其次如果在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值