在 JS 和本机端开发到 Sentry 时,避免发送调试错误的推荐方法是什么?
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
时会生成警告 App Start Span could not be finished.
Sentry.wrapwas called before
Sentry.init.
if(!__DEV__) {
Sentry.init({
dsn: "SOME_VALID_URL"
})
}
function RootLayout() {
...
}
export default Sentry.wrap(RootLayout);
根据 Sentry options docs,建议将 dns 设置为
undefined
。
- 用于连接Sentry并识别项目的Dsn。如果省略,SDK将不会向Sentry发送任何数据。
Sentry.init({
dsn: __DEV__
? undefined
: "YOUR_SENTRY_DSN_URL"
})
小心
enabled: !__DEV__
。目前,它不断发送在开发模式下生成的本机错误
https://github.com/getsentry/sentry-react-native/issues/562#issuecomment-2462756039 https://github.com/getsentry/sentry/issues/6509#issuecomment-705008390 https://github.com/getsentry/sentry-javascript/blob/8c2aa1b883785ab1ce5f7c8173907f5fcbf39912/packages/types/src/options.ts#L39-L40