[React Native] 환경 변수 셋팅


🔥 1. 사전 설치

yarn add react-native-config or npm i react-native-config

🔥 2. Android

1. build.gradle 셋팅

  • project/android/app/build.gradle
// 빌드 타입마다 .env가 바뀌어야 하는 경우 아래코드 설정 (.env 하나인 경우 무관)
project.ext.envConfigFiles = [
    debug: ".env.debug",
    release: ".env",
    anothercustombuild: ".env.staging",
]

apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle" // 추가

defaultConfig {
	        resValue "string", "build_config_package", "AndroidManifest파일 packageName입력" // 추가
            ...
}

🔥 3. IOS

1. Config파일 생성

1 1

2. Configurations에 Config 적용

1

생성한 Config파일에 아래 코드 추가

#include? "tmp.xcconfig"

3. Pre-actions 추가

Xcode에서 좌측 상단 Product > Scheme > Edit Scheme을 열고

Build > Pre-actions탭에서 좌측 하단 +를 눌러 New Run Script Action클릭

1 1

1

  • info.plist

아래 스크립트 코드를 작성

cp "${PROJECT_DIR}/../.env"

"${SRCROOT}/../node_modules/react-native-config/ios/ReactNativeConfig/BuildXCConfig.rb" "${SRCROOT}/.." "${SRCROOT}/tmp.xcconfig"

🔥 4. 사용방법

  • 환경변수 선언
  • 루트경로의 .env파일 생성
ENV_KEY=VALUE

1. 환경변수 가져오기

import Config from "react-native-config";
Config.ENV_KEY;

2. iOS (info.plist)

<key>CFBundleDisplayName</key>
<string>$(ENV_KEY)</string>

3. AndroidManifest

<application
      android:name=".MainApplication"
      android:label="@string/ENV_KEY"
	  ...
>
</application>

4. build.gradle

versionCode project.env.get("ENV_KEY").toInteger()
versionName project.env.get("ENV_KEY")