[React-native + expo]エラー監視ツールSentryを導入してみた
最近の勉強で学んだ事を、ノート代わりにまとめていきます。
主に自分の学習の流れを振り返りで残す形なので色々、省いてます。
エンジニアの諸先輩方からアドバイスやご指摘を頂けたらありがたいです!
はじめに
アプリを運用していくにあたって、エラーの監視をどのツールで行うか検討した結果
ドキュメント(Expo, sentry)の豊富さだったり、React Native のサポートだったり、そもそもの使いやすさの面 + 価格が 5000/month が free ということで、相性の良さそうな Sentry を選びました。
Sentryとは?
フロントエラーの監視ツール。
公式サイトはこちら
https://sentry.io/welcome/
今回はreact-native側で起きるエラーをSentryで監視します。
導入フロー
Sentryのアカウント設定などはこの記事を参考に進めました!
Expo(React Native)でSentryを利用してみる
Sentryの設定が完了したらExpoのドキュメントを参考に App.tsx
とapp.json
に必要なcodeを追記すれば完了です。
Using Sentry
動作確認の為、ボタンを押しSentryでエラー確認できたらOKです。
import React from 'react';
import { StyleSheet, Text, View, Button } from 'react-native';
import * as Sentry from 'sentry-expo';
//Sentry初期化
Sentry.init({
dsn: 'https://[email protected]',
enableInExpoDevelopment: true,
debug: true
});
export default class App extends React.Component {
render() {
return (
<View style={{ flex: 1, justifyContent: 'center' }}>
<Text>App</Text>
<Button
title="throw error"
onPress={() => {
throw new Error('test error'); //button pushでエラー発生させる
}}
/>
</View>
);
}
}
export default App;
React-nativeのエラーを検知するようにcodeを追記
Sentryを導入して試しにReact-native側のエラーを検知できるかテストしましたが
ドキュメントに書いてある基本設定だけではreact-nativeのエラーを検知することができませんでした。
React-nativeでの設定を追加
@sentry/react-native
を yarn add @sentry/react-native
コマンドで追加し
最上位の App.tsx で Comonent を SentryNative.ErrorBoundary
でwrapします。
これで子 Component 以下で発生するエラーを補足することができます。
import React from 'react';
import { StyleSheet, Text, View, Button } from 'react-native';
import * as Sentry from 'sentry-expo';
+ import * as SentryNative from '@sentry/react-native';
//Sentry初期化
Sentry.init({
dsn: 'https://[email protected]',
enableInExpoDevelopment: true,
debug: true
});
export default class App extends React.Component {
render() {
return (
+ <SentryNative.ErrorBoundary showDialog>
<View style={{ flex: 1, justifyContent: 'center' }}>
<Text>App</Text>
<Button
title="throw error"
onPress={() => {
throw new Error('test error'); //button pushでエラー発生させる
}}
/>
</View>
+ </SentryNative.ErrorBoundary>
);
}
}
export default App;
これで、React-nativeで発生したエラーを補足してエラーを表示することが出来るようになります。
参考記事
・僕の考える最強のReact Native開発ライブラリ等(2020年11月末版)
・react + react native(Expo)でエラーハンドリングどうやる?
・FlutterアプリでSentryとFirebase Crashlyticsにエラーレポートを送りアプリの品質改善に役立てる
Author And Source
この問題について([React-native + expo]エラー監視ツールSentryを導入してみた), 我々は、より多くの情報をここで見つけました https://qiita.com/hirokik-0076/items/e6bcd1ea18e5b4fb999e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .