발생 에러
FAILURE: Build failed with an exception.
* What went wrong:
Could not determine the dependencies of task ':app:processDebugResources'.
> Could not resolve all task dependencies for configuration ':app:debugRuntimeClasspath'.
> Could not find com.facebook.fresco:fresco:2.2.0.
Searched in the following locations:
- https://repo.maven.apache.org/maven2/com/facebook/fresco/fresco/2.2.0/fresco-2.2.0.pom
- file:/Users/taegyeonglee/Desktop/CG/Test634/node_modules/react-native/android/com/facebook/fresco/fresco/2.2.0/fresco-2.2.0.pom
- file:/Users/taegyeonglee/Desktop/CG/Test634/node_modules/jsc-android/dist/com/facebook/fresco/fresco/2.2.0/fresco-2.2.0.pom
- https://dl.google.com/dl/android/maven2/com/facebook/fresco/fresco/2.2.0/fresco-2.2.0.pom
- https://www.jitpack.io/com/facebook/fresco/fresco/2.2.0/fresco-2.2.0.pom
해결 방법
먼저 빌드를 시도하는 앱의 flipper 버전을 확인해야 합니다. 프로젝트/android 디렉토리를 안드로이드 스튜디오로 열어 주세요. gradle script 목록에서 build.properties 파일을 열어 FLIPPER_VERSION 를 확인해 주세요. FLIPPER_VERSION이 0.99.0 미만일 때에만 이 해결방법은 도움이 될 수 있습니다.
만약 FLIPPER_VERSION 이 0.99.0 미만이라면 FLIPPER_VERSION을 0.99.0으로 수정해 주세요. 그 다음 다시 빌드를 시도해 보세요.
# Version of flipper SDK to use with React Native
FLIPPER_VERSION=0.99.0
왜 그럴까?
제 프로젝트 기준 FLIPPER_VERSION 은 0.99.0 보다 전엔 0.54.0 이었습니다.
build.gradle(:app) 파일의 일부를 보겠습니다. 아래와 같이 디버그 모드에서 실행시 flipper-fresco-plugin:0.54.0이 의존성 목록에 포함된다고 해석할 수 있습니다.
debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
exclude group:'com.facebook.flipper'
}
자 그럼 flipper-fresco-plugin:0.54.0의 의존성 목록은 무엇일까요? 한번 확인해 보았습니다. 이 링크를 참고해 주세요.
com.facebook.fresco 의 fresco 2.2.0 버전을 의존성 목록에 포함하고 있네요. 이러한 정보를 가지고 gradle 스크립트는 중앙 저장소에서 조건에 맞는 의존성 목록을 가져오게 됩니다. 그럼 중앙 저장소에 해당 버전이 존재하는 지 확인해 봅시다.
???
중앙 저장소 https://repo.maven.apache.org/maven2/com/facebook/fresco/fresco/ 에 2.2.0 버전이 없습니다. flipper-fresco-plugin 의 버전이 0.54.0 (FLIPPER_VERSION)일 때, 중앙 저장소에 존재하지 않는 fresco 버전 2.2.0을 가져오려고 시도하고 있었습니다.
FLIPPER_VERSION 0.54.0 버전이 최신 버전이었을 땐 있었겠죠... 근데 23년 6월 지금은 없습니다. 결국 버전 호환성 문제인 것이죠. FLIPPER_VERSION 0.99.0 버전도 최신 버전은 아닙니다.
하지만 적어도 의존성 문제는 해결되었습니다. 따라서 0.99.0 버전으로 바꾸어 주어야 합니다. (0.98.0 버전은 빌드는 정상적으로 되나 android 13 에서 정상적으로 실행 되지 않았습니다.)
React-Native 개발의 길은 참 험난합니다,,,,