• /
  • EnglishEspañolFrançais日本語한국어Português
  • 로그인지금 시작하기

사용자의 편의를 위해 제공되는 기계 번역입니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

EAS Build용 리액트 네이티브 에이전트 구성

|View as Markdown (English)

리액트 네이티브 앱을 EAS Build로 빌드하는 경우, Expo의 CNG(Continuous Native Generation)는 모든 expo prebuild 단계마다 ― 로컬 및 EAS의 빌드 서버 모두에서 ― android/ 및 ios/ 폴더를 처음부터 다시 생성합니다. 즉, 수동으로 추가한 newrelic.properties 파일이나 직접 추가한 Xcode Run Script 빌드 단계는 다음 빌드 시 삭제됩니다.

newrelic-react-native-agent 설정 플러그인은 모든 사전 빌드 시 뉴렐릭 빌드 설정을 다시 생성하여 이 문제를 해결하므로, 안드로이드 매핑 파일 및 소스 맵 업로드와 iOS dSYM 및 소스 맵 업로드가 EAS 빌드 전반에서 계속 작동합니다. 이 플러그인은 빌드 시 환경 변수에서 자격 증명을 읽으며 리포지터리에 커밋하지 않습니다.

팁

이 페이지는 Expo와 통합에 설명된 대로 리액트 네이티브 에이전트를 이미 설치하고 app.json 또는 app.config.js에 설정 플러그인을 추가했다고 가정합니다. 최신 버전의 newrelic-react-native-agent가 필요합니다 ― 아래의 플러그인 옵션을 아직 사용할 수 없는 경우 패키지의 GitHub 릴리스를 확인하십시오.

시작하기 전에

동일한 뉴렐릭 계정에서 다음을 가져오십시오:

  • 사용자 API 키.
  • 안드로이드 및/또는 iOS 애플리케이션 토큰 (NewRelic.startAgent()에 전달하는 것과 동일한 토큰). 두 플랫폼 모두에 배포하는 경우 플랫폼당 하나의 토큰이 필요합니다.

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로 절대 노출하지 않습니다 — 설정 플러그인은 이를 볼 수 없으며, 안드로이드 속성 파일이나 iOS 빌드 단계 자격 증명 작성을 조용히 건너뜁니다. 대신 plaintext 또는 sensitive를 사용하십시오.

EAS Build는 빌드가 EAS의 서버에서 실행되든 eas build --local을(를) 사용하여 로컬에서 실행되든 상관없이 prebuild을(를) 실행하기 전에 plaintext/sensitive 변수를 해석합니다.

안드로이드: 자동 매핑 파일 및 소스 맵 업로드

추가 설정 없이, 플러그인은 NEWRELIC_USER_API_KEY에서 사용자 API 키를, NEWRELIC_ANDROID_APP_TOKEN에서 안드로이드 애플리케이션 토큰을 읽어 모든 사전 빌드 시 android/app/newrelic.properties에 작성합니다:

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

이러한 속성은 각 릴리스 빌드 후 ProGuard/R8 매핑 파일 및 리액트 네이티브 소스 맵의 업로드를 인증하기 위해 에이전트의 newrelicMapUploadRelease 및 newrelicReactNativeSourceMapUploadRelease Gradle 작업이 읽는 항목입니다. 해당 업로드가 작동하는 방식(및 필요한 경우 수동으로 업로드하는 방법)에 대한 자세한 내용은 리액트 네이티브 JavaScript 오류 보고를 참조하십시오.

두 환경 변수 중 하나만 설정된 경우, 플러그인은 여전히 해당 단일 속성을 기록하며, Gradle 작업은 빌드를 실패하는 대신 어느 것이 누락되었는지 로그에 기록합니다. 둘 다 설정되지 않은 경우, 플러그인은 newrelic.properties을(를) 그대로 두고 두 작업 모두 로그 메시지와 함께 업로드를 건너뜁니다.

사용자 지정 환경 변수 이름 사용(안드로이드)

다른 이름의 환경 변수에서 키와 토큰을 가져오려면 명시적으로 전달하십시오:

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

iOS: 자동 dSYM 및 소스 맵 업로드

안드로이드와 달리, dSYM 및 리액트 네이티브 소스 맵 업로드 스크립트(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 뉴렐릭"이라는 Run Script 빌드 단계를("Bundle 리액트 네이티브 code and images" 이후에) 추가합니다 — 생성된 스크립트는 이름으로만 자격 증명을 참조하며 파일에 절대 기록하지 않습니다.
  • Expo의 기본 템플릿은 이를 설정하지 않으며, 그렇지 않을 경우 Expo에서 소스 맵을 생성하지 않으므로 "Bundle 리액트 네이티브 code and images" 단계에서 SOURCEMAP_FILE을(를) 내보내는지 확인합니다.

추가 설정 없이 빌드 단계는 NEWRELIC_IOS_APP_TOKEN에서 iOS 애플리케이션 토큰을, NEWRELIC_USER_API_KEY에서 사용자 API 키(안드로이드 기본값과 공유됨)를 읽습니다:

{
"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 빌드를 실행한 후 각 플랫폼의 빌드 로그를 확인하십시오:

  • 안드로이드: 로그에서 newrelicMapUploadRelease 및 newrelicReactNativeSourceMapUploadRelease Gradle 작업을 찾으십시오. 성공적으로 실행되면 매핑 파일과 소스 맵이 발견되어 업로드되었으며, missing-config 경고가 없다고 보고합니다.
  • iOS: "Upload dSYMs and Source Maps to New Relic" 실행 스크립트 단계를 찾으십시오. 자격 증명이 누락된 경우 빌드를 실패하는 대신 누락된 자격 증명을 로그에 기록하고 해당 업로드(예: NEWRELIC_IOS_APP_TOKEN not set, skipping...)를 건너뜁니다. 자격 증명이 있는 경우 dSYM 및 소스 맵을 처리하고 뉴렐릭에 업로드하고 있음을 로그에 기록합니다.

빌드가 성공하면 리액트 네이티브 소스 맵 나열 및 삭제를 확인하여 소스 맵이 실제로 뉴렐릭에 도착했는지 확인하십시오.

문제 해결

Copyright © 2026 New Relic Inc.

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