• /
  • EnglishEspañolFrançais日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、このページを参照してください。

問題を作成する

EAS Build用にReact Nativeエージェントを設定します。

|View as Markdown (English)

EAS Buildを使用してReact Nativeアプリをビルドする場合、ExpoのContinuous Native Generation(CNG)は、ローカルとEASのビルドサーバーの両方で、expo prebuildステップごとにandroid/およびios/フォルダーをゼロから再生成します。つまり、手動で追加したnewrelic.propertiesファイルや、手作業で追加したXcodeのRun Scriptビルドフェーズは、次のビルドで消去されます。

newrelic-react-native-agentの設定プラグインは、プレビルドのたびにNew Relicのビルド設定を再生成することでこの問題を解決します。これにより、Androidのマッピングファイルとソースマップのアップロード、およびiOSのdSYMとソースマップのアップロードが、EASビルド全体で引き続き機能するようになります。プラグインはビルド時に環境変数から認証情報を読み取り、リポジトリにコミットすることはありません。

ヒント

このページでは、「Expoとの統合」で説明されているように、React Nativeエージェントをすでにインストールし、app.jsonまたはapp.config.jsに設定プラグインを追加していることを前提としています。これには最新バージョンのnewrelic-react-native-agentが必要です — 以下のプラグインオプションがまだ利用できない場合は、パッケージのGitHubリリースを確認してください。

あなたが始める前に

同じNew Relicアカウントから以下を取得します:

  • ユーザーAPIキー。
  • Androidおよび/またはiOSのアプリケーション・トークン(NewRelic.startAgent()に渡すトークンと同じものです)。両方のプラットフォームにリリースする場合は、プラットフォームごとに1つのトークンが必要です。

EAS環境変数を設定します

ユーザーAPIキーとアプリケーショントークンを、ビルドする環境をスコープとして、EAS環境変数として登録します:

bash
$
eas env:create --environment production --name NEWRELIC_USER_API_KEY --value <YOUR_USER_API_KEY> --visibility sensitive
$
eas env:create --environment production --name NEWRELIC_ANDROID_APP_TOKEN --value <YOUR_ANDROID_APP_TOKEN> --visibility sensitive
$
eas env:create --environment production --name NEWRELIC_IOS_APP_TOKEN --value <YOUR_IOS_APP_TOKEN> --visibility sensitive

重要

--visibility secretは使用しないでください。EASは独自の認証情報システム用にシークレット可視性変数を予約しているため、EASがそれらをprocess.envとしてビルドスクリプトに公開することはありません — 設定プラグインはそれらを認識せず、AndroidプロパティファイルやiOSビルドフェーズの認証情報の書き込みを暗黙のうちにスキップします。代わりに、plaintextまたはsensitiveを使用してください。

EAS Buildは、ビルドがEASのサーバーで実行されるか、eas build --localを使用してローカルで実行されるかにかかわらず、prebuildを実行する前にplaintext/sensitive変数を解決します。

Android:マッピングファイルとソースマップの自動アップロード

追加の設定を行わない場合、プラグインはNEWRELIC_USER_API_KEYからユーザーAPIキーを、NEWRELIC_ANDROID_APP_TOKENからAndroidアプリケーショントークンを読み取り、プレビルドのたびにそれらをandroid/app/newrelic.propertiesに書き込みます:

{
"name": "my app",
"plugins": ["newrelic-react-native-agent"]
}

これらのプロパティは、各リリースビルド後にProGuard/R8マッピングファイルとReact Nativeソースマップのアップロードを認証するために、エージェントのnewrelicMapUploadReleaseおよびnewrelicReactNativeSourceMapUploadRelease Gradleタスクが読み取るものです。このアップロードの仕組み(および必要に応じて手動でアップロードする方法)の詳細については、React Native JavaScriptエラーレポートをご覧ください。

2つの環境変数のうち1つだけが設定されている場合、プラグインは引き続きその単一のプロパティを書き込み、Gradleタスクはビルドを失敗させるのではなく、どちらが欠落しているかをログに記録します。どちらも設定されていない場合、プラグインはnewrelic.propertiesを変更せず、両方のタスクはログメッセージを出力してアップロードをスキップします。

カスタム環境変数名の使用(Android)

異なる名前の環境変数からキーとトークンを取得するには、それらを明示的に渡します:

{
"name": "my app",
"plugins": [
[
"newrelic-react-native-agent",
{
"android": {
"apiKeyEnvName": "MY_NR_USER_API_KEY",
"appTokenEnvName": "MY_NR_ANDROID_APP_TOKEN"
}
}
]
]
}

iOS:dSYMとソースマップの自動アップロード

Androidとは異なり、dSYMおよびReact Nativeのソースマップ・アップロード・スクリプト(dsym-upload-toolsフォルダーのrun-symbol-toolおよびupload-react-native-sourcemap)はNewRelicAgent CocoaPod内に同梱されておらず、通常はXcodeで手動で追加されたRun Scriptビルド・フェーズを必要とします — これはexpo prebuildがios/を再生成する際には保持されません。代わりに、プレビルドのたびにプラグインは以下を行います:

  • 両方のスクリプトをios/dsym-upload-toolsにコピーします。
  • ビルド時に環境変数から認証情報を読み取り、それらを呼び出す「Upload dSYMs and Source Maps to New Relic」という名前のRun Scriptビルドフェーズを(「Bundle React Native code and images」の後に)追加します — 生成されたスクリプトは名前で認証情報を参照するだけで、ファイルに書き込むことはありません。
  • Expoのデフォルトテンプレートでは設定されておらず、そうしないとExpoがソースマップを生成しないため、「Bundle React Native code and images」フェーズがSOURCEMAP_FILEをエクスポートするようにします。

追加の設定を行わない場合、ビルドフェーズはiOSアプリケーショントークンをNEWRELIC_IOS_APP_TOKENから、ユーザーAPIキーをNEWRELIC_USER_API_KEYから読み取ります(Androidのデフォルトと共有):

{
"name": "my app",
"plugins": ["newrelic-react-native-agent"]
}

これらのスクリプトの機能や、Expo外でのdSYMアップロードの仕組みに関する背景情報については、dSYMのアップロードをご覧ください。

ヒント

両方のスクリプトはReleaseビルドに対してのみ実行され、デフォルトではシミュレータービルドをスキップします。シミュレーターでソースマップのアップロードパスをテストするには、NEWRELIC_SOURCEMAP_ALLOW_SIMULATOR=trueを設定します。

カスタム環境変数名の使用(iOS)

異なる名前の環境変数からトークンとキーを取得するには、それらを明示的に渡します:

{
"name": "my app",
"plugins": [
[
"newrelic-react-native-agent",
{
"ios": {
"appTokenEnvName": "MY_NR_IOS_APP_TOKEN",
"apiKeyEnvName": "MY_NR_USER_API_KEY"
}
}
]
]
}

アップロードの検証

EASビルドを実行した後、各プラットフォームのビルドログを確認してください:

  • Android:ログ内のnewrelicMapUploadReleaseおよびnewrelicReactNativeSourceMapUploadRelease Gradleタスクを探します。正常に実行されると、マッピングファイルとソースマップが検出およびアップロードされたことが報告され、missing-config警告は表示されません。
  • iOS:「Upload dSYMs and Source Maps to New Relic」の実行スクリプトステップを探します。認証情報が欠落している場合、ビルドを失敗させるのではなく、どの認証情報が欠落しているかをログに記録し、そのアップロードをスキップします(例:NEWRELIC_IOS_APP_TOKEN not set, skipping...)。認証情報が存在する場合、dSYMとソースマップを処理し、それらをNew Relicにアップロードしていることをログに記録します。

ビルドが成功したら、「React Nativeソースマップの一覧表示と削除」を参照して、ソースマップが実際にNew Relicに送信されたことを確認してください。

トラブルシューティング

Copyright © 2026 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.