sentry-react-native-setup について
React Native と Expo のプロジェクトに Sentry を導入するための設定スキルです。公式ウィザードまたは手動設定を扱い、SDK 初期化、ビルド連携、ソースマップ送信、問題の診断を説明します。
主な機能
- 01公式ウィザードによる導入
- 02SDK の手動初期化ガイド
- 03Metro と Expo の設定
- 04Android と iOS のビルド連携
- 05ソースマップ送信の設定
- 06導入時の問題への対処
活用シーン
- 01React Native アプリへの Sentry 導入
- 02managed または bare Expo での設定
- 03ソースマップ送信の設定
- 04導入やビルド問題の診断
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ getsentry/ sentry-agent-skills --skill sentry-react-native-setupインストール後、Claude Code で/sentry-react-native-setupを入力して読み込まれたか確認します。
詳細
Sentry React Native のセットアップ
公式のウィザード CLI を使用して、React Native プロジェクトに Sentry をインストールし、設定します。
このスキルを使用する場面
- React Native アプリに「Sentry を追加」または「Sentry をインストール」したいとユーザーが依頼した場合
- ユーザーが React Native または Expo でのエラー監視、ログ記録、トレースを求めている場合
- ユーザーが「@sentry/react-native」またはモバイルのエラー追跡に言及した場合
重要: 以下の設定オプションとコードサンプルは例です。API やデフォルト値が変更されている可能性があるため、実装前に必ず docs.sentry.io を確認してください。
ウィザードによるセットアップ(推奨)
npx @sentry/wizard@latest -i reactNative
ウィザードで行われること
| タスク | 説明 |
|---|---|
| SDK のインストール | @sentry/react-native パッケージを追加します |
| Metro の設定 | metro.config.js に @sentry/react-native/metro を追加します |
| Expo の設定 | app.json に @sentry/react-native/expo を追加します |
| Android のセットアップ | ソースマップ用の Gradle ビルドステップを有効にします |
| iOS のセットアップ | Xcode のビルドフェーズをラップし、デバッグシンボルのアップロードを追加します |
| Pod のインストール | iOS 用に pod install を実行します |
| 認証情報 | ios/sentry.properties、android/sentry.properties、env.local に保存します |
| 初期化コード | App.tsx または _layout.tsx で Sentry を設定します |
手動設定
ウィザードを使用しない場合は、アプリのエントリーポイントに追加します。
import * as Sentry from "@sentry/react-native";
Sentry.init({
dsn: "YOUR_SENTRY_DSN",
sendDefaultPii: true,
// Tracing
tracesSampleRate: 1.0,
// Logs
enableLogs: true,
// Profiling
profilesSampleRate: 1.0,
// Session Replay
replaysOnErrorSampleRate: 1.0,
replaysSessionSampleRate: 0.1,
integrations: [Sentry.mobileReplayIntegration()],
});
アプリをラップする
export default Sentry.wrap(App);
Expo プロジェクト
Expo の場合は、Expo 固有のセットアップに従ってください。
npx @sentry/wizard@latest -i reactNative
マネージド Expo プロジェクトとベア Expo プロジェクトの両方で動作します。
設定オプション
| オプション | 説明 | デフォルト |
|---|---|---|
dsn | Sentry DSN | 必須 |
sendDefaultPii | ユーザーデータを含める | false |
tracesSampleRate | トレースするトランザクションの割合 | 0 |
profilesSampleRate | プロファイリングするトレースの割合 | 0 |
enableLogs | Sentry にログを送信する | false |
replaysOnErrorSampleRate | リプレイするエラーセッションの割合 | 0 |
replaysSessionSampleRate | リプレイする全セッションの割合 | 0 |
作成・変更されるファイル
| ファイル | 用途 |
|---|---|
App.js / _layout.tsx | Sentry の初期化 |
metro.config.js | Metro バンドラーの設定 |
app.json | Expo の設定(Expo の場合) |
ios/sentry.properties | iOS ビルドの認証情報 |
android/sentry.properties | Android ビルドの認証情報 |
env.local | 環境変数 |
環境変数
SENTRY_DSN=https://[email protected]/456
SENTRY_AUTH_TOKEN=sntrys_xxx
SENTRY_ORG=my-org
SENTRY_PROJECT=my-project
確認
テストエラーを追加します。
throw new Error("My first Sentry error!");
または、テストボタンを使用します。
<Button title="Test Sentry" onPress={() => { throw new Error("Test"); }} />
ソースマップ
ウィザードで設定すると、ビルド時にソースマップが自動的にアップロードされます。
- Android:Gradle プラグイン
- iOS:Xcode のビルドフェーズ
トラブルシューティング
| 問題 | 解決方法 |
|---|---|
| ウィザードが失敗する | 手動セットアップを試し、Node のバージョンを確認します |
| iOS のビルドが失敗する | cd ios && pod install を実行します |
| ソースマップがアップロードされない | sentry.properties ファイルに認証トークンがあることを確認します |
| Expo のエラー | 互換性のある Expo SDK バージョンを使用していることを確認します |
| アプリがラップされていない | export default Sentry.wrap(App) を追加します |
コメント
Markdown 対応