在React Native中如何防止Sentry在开发模式下发送事件?

问题描述 投票:0回答:2

在 JS 和本机端开发到 Sentry 时,避免发送调试错误的推荐方法是什么?

开发模式下JS错误

开发模式下的本机崩溃错误

Sentry @sentry/react-native 版本 6.1.0 尝试过什么,但没有成功:

选项1:

Sentry.init({
  enabled: !__DEV__
  dsn: "SOME_VALID_URL"
})

结果:这仅适用于 js 错误,但继续向 Sentry 发送本机错误

选项2:

if(!__DEV__) {
  Sentry.init({
    dsn: "SOME_VALID_URL"
  })
}

结果:在根组件中使用

Sentry.wrap
时会生成警告

应用程序启动跨度无法完成。

Sentry.wrap
Sentry.init
之前被调用。

if(!__DEV__) {
  Sentry.init({
    dsn: "SOME_VALID_URL"
  })
}

function RootLayout() {
 ...
}

export default Sentry.wrap(RootLayout);
react-native sentry react-native-sentry
2个回答
0
投票

根据 Sentry options docs,建议将 dns 设置为

undefined

  • 用于连接Sentry并识别项目的Dsn。如果省略,SDK将不会向Sentry发送任何数据。
Sentry.init({
  dsn: __DEV__
    ? undefined
    : "YOUR_SENTRY_DSN_URL"
})

小心

enabled: !__DEV__
。目前,它不断发送在开发模式下生成的本机错误

来源:

如何在开发中禁用哨兵?

如何在调试时禁用哨兵?

Sentry init 中的启用选项不会避免在 Dev 模式下向 Sentry 发送本机事件


0
投票

如果您只是想最小化它,您可以使用以下解决方案:

Sentry.init({
  debug: false // or use env like !isDev || !isStg
})

© www.soinside.com 2019 - 2024. All rights reserved.