Expo 와 react native(Android) 호환성 문제

임기준·2025년 5월 23일
0

Expo에서 React Native 프로젝트를 개발할 때 버전 호환성 문제는 정말 흔하게 발생하는 어려움입니다. (프로젝트를 다시 만들고 싶다는 욕구를 일으키기도 합니다.)
특히 expo CLI, react-native, expo-sdk, gradle, 그리고 Android Gradle Plugin (AGP) 간의 복잡한 관계 때문에 더욱 그렇습니다.

정확한 모든 호환성 조합을 표로 정리하는 것은 매우 어렵습니다. 그 이유는 다음과 같습니다:

  • 지속적인 업데이트: 각 라이브러리는 거의 매달 새로운 버전을 릴리스하며, 이전 버전과의 호환성도 계속 변화합니다.
  • 복잡한 종속성: 하나의 라이브러리 버전이 변경되면 다른 여러 라이브러리의 호환성에 영향을 미칩니다.
  • 하위 호환성: 항상 하위 호환성이 완벽하게 보장되지는 않습니다.

하지만, 가장 중요한 것은 Expo SDK 버전을 기준으로 나머지 종속성들을 맞춰나가는 것입니다. Expo는 특정 SDK 버전에서 테스트 및 권장하는 React Native, Gradle, AGP 버전을 제공합니다.


다음은 일반적인 가이드라인과 Expo 공식 문서에서 제공하는 권장 호환성 표를 기반으로 한 정리입니다. 이 표는 정적이지 않으며, 프로젝트를 시작하거나 업그레이드할 때마다 Expo의 공식 문서를 확인하는 것이 가장 중요합니다.

Expo SDK 기반 React Native 개발 시 권장 호환성 (2024년 5월 기준)

Expo SDK 버전react native 버전Android Gradle Plugin(AGP) 버전Gradle버전(gradle-wrapper.properties)Node.js 버전
51(현재버전)~0.74.x8.4.x(권장)8.8(권장)^18.0.0
50~0.73.x8.2.x(권장)8.4.x(권장)^18.0.0
49~0.72.x8.1.x(권장)8.0.x(권장)>=16.14.0
48~0.71.x7.4.x(권장)7.6.x(권장)>=16.14.0
47~0.70.x7.3.x(권장)7.5.x(권장)>=16.14.0

호환성 문제를 피하는 가장 좋은 방법:

  1. 새 프로젝트 시작 시:
    항상 npx create-expo-app 명령어를 사용하여 새로운 Expo 프로젝트를 생성하세요. 이 명령어는 현재 Expo CLI의 최신 버전을 사용하여 가장 호환성이 좋은 React Native, Expo SDK, Gradle 및 AGP 버전을 자동으로 설정해 줍니다.
npx create-expo-app my-new-app
cd my-new-app
npx expo run:android # 또는 npx expo run:ios
  1. 기존 프로젝트 업그레이드 시:
  • expo-cli upgrade 사용: Expo는 프로젝트 업그레이드를 위한 공식 도구인 expo upgrade를 제공합니다. 이 명령어를 사용하면 프로젝트의 Expo SDK 버전과 그에 따른 종속성들을 자동으로 업데이트해 줍니다.
npx expo-cli upgrade
  • 공식 문서 확인: 업그레이드 전에 항상 Expo 공식 문서에서 해당 SDK 버전의 릴리스 노트를 확인하여 중요한 변경 사항이나 수동으로 적용해야 할 사항이 있는지 확인해야 합니다.
  • android 및 ios 폴더 재생성 (선택 사항): 간혹 문제가 해결되지 않을 경우, android와 ios 폴더를 삭제하고 npx expo prebuild --clean 명령어를 사용하여 다시 생성하는 것을 시도해 볼 수 있습니다. (단, 이 폴더 내에 수동으로 변경한 네이티브 코드가 있다면 백업 후 진행해야 합니다.)
  1. 에러 메시지 확인:
    Unresolved reference: serviceOf와 같은 에러는 대개 Gradle 또는 AGP 버전이 낮아서 발생하는 문제입니다. 에러 메시지에 "Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0." 와 같은 경고가 있다면, Gradle 버전을 올려야 할 때입니다.

이 표와 가이드라인을 통해 Expo React Native 프로젝트의 버전 호환성 문제를 효율적으로 관리할 수 있기를 바랍니다.

profile
openerzone

0개의 댓글