본문 바로가기

React-Native

[RN] Expo eas build에서 네트워크 요청이 안되는 현상

Expo 54버전에서 개발을 진행하던 중 eas로 빌드해서 빌드를 받아 실행시킨 경우 네트워크 요청이 안되는 현상이 발생했다.

  "scripts": {
    "start": "expo start --dev-client",
    "android": "expo start --dev-client --android",
    "ios": "expo start --dev-client --ios",
    "prebuild": "npx expo prebuild",
    "prebuild:ios": "npx expo prebuild --platform ios",
    "prebuild:android": "npx expo prebuild --platform android",
    "prebuild:clean": "npx expo prebuild --clean",
    "prebuild:ios:clean": "npx expo prebuild --platform ios --clean",
    "prebuild:android:clean": "npx expo prebuild --platform android --clean",
    "ios:install": "cd ios && pod install && cd ..",
    "ios:build": "npx expo run:ios",
    "android:build": "npx expo run:android",
    "web": "expo start --web",
    "build:dev:ios": "eas build --profile development --platform ios",
    "build:dev:android": "eas build --profile development --platform android",
    "build:test:ios": "eas build --profile test --platform ios",
    "build:test:android": "eas build --profile test --platform android",
    "build:prod:ios": "eas build --profile production --platform ios",
    "build:prod:android": "eas build --profile production --platform android",
    "submit:ios": "eas submit --platform ios",
    "submit:android": "eas submit --platform android",
    "api:generate": "orval",
    "api:watch": "orval --watch"
  },


Scripts는 위와 같았다. 개발 초기단계라, 우선 네트워크 요청 문제를 실제 디바이스에서 확인하기 전 시뮬레이터, 에뮬레이터에서 잘 되던 naverMap API가 렌더되자마자 앱이 죽는 이슈가 있었다.

네트워크 요청도 에뮬레이터와 시뮬레이터에서는 잘 실행이 됐었다.

문제는 Eas빌드시 .env파일에 있었다.

웹과 달리 .env파일이 자동으로 맞춰 들어가는게 아니라 eas.json에서 직접 설정을 해줘야했다. 

   "test": {
      "distribution": "internal",
      "env": {
        "NODE_ENV": "test",
        "API_BASE_URL_PROD": "//",
        "GOOGLE_MAPS_API_KEY": "//"
      },
      "android": {
        "buildType": "apk"
      },
      "ios": {
        "simulator": false
      }
    },


위와 같이 주입 후 prebuild한 뒤 다시 eas 빌드를 하니 문제가 정상적으로 해결되었다.