React-Native는 정말 많이, 빠르게 변화하고 있습니다. 크로스 모바일 플랫폼이다 보니 android, iOS 생태계의 변경에 민감하고 추가 적인 라이브러리에 매우 의존적입니다. 조금이라도 React-Native 버전이 최신 버전과 차이가 날 경우 늘 새로운 에러를 마주합니다.
이번 글엔 구 버전, 이 글에선 0.63.4 버전을 기준으로 빌드에 성공하는 방법에 대해 설명합니다. android 빌드에 한해 서술합니다.
flipper 버전 수정
프로젝트/android 디렉토리를 안드로이드 스튜디오로 열어 gradle.properties 내 flipper 버전을 수정합니다. 0.99.0 으로 버전을 수정해 주세요. 의존성 라이브러리의 호환성 문제(fresco 등)를 해결하기 위해 버전을 수정해야 합니다.
# Version of flipper SDK to use with React Native
FLIPPER_VERSION=0.99.0
copyDownloadableDepsToLibs Task 수정
build.gradle (app) 파일을 수정해야 합니다.
copDownloadableDepsToLibs task 내 compile을 implementation으로 수정해 주세요.
task copyDownloadableDepsToLibs(type: Copy) {
from configurations.implementation
into 'libs'
}
jcenter 비활성화 및 mavenCentral 활성화
build.gradle (project) 파일을 수정해야 합니다.
buildscript > repositories 내 jcenter() 주석 처리 및 mavenCentral() 을 추가해 주세요. jcenter()는 21년부터 더 이상 사용되지 않는 레포지토리로 이 글을 쓰는 23년 6월 운영 유지되는 mavenCentral 로 레포지토리를 변경해야 합니다.
buildscript {
...
repositories {
google()
mavenCentral()
// jcenter()
}
...
}
...
allprojects {
repositories {
mavenCentral()
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url("$rootDir/../node_modules/react-native/android")
}
maven {
// Android JSC is installed from npm
url("$rootDir/../node_modules/jsc-android/dist")
}
google()
// jcenter()
maven { url 'https://www.jitpack.io' }
}
}
이제 준비가 끝났습니다. 안드로이드 앱 빌드를 시도해 보세요. 잘 빌드 되는 것을 확인해 볼 수 있습니다.