리액트 네이티브 최신 버전으로 앱을 빠르게 제작하여 배포를 진행중이였다.
분명 기기 연결 테스트까지 잘되었는데 릴리즈 번들링에서 Could not find com.facebook.react:react-native:0.71.0-rc.0 오류가 발생했다.
해외에서는 22년 11월부터 이 이슈가 올라와서 많이 이야기가 나왔는데 국내 글이 없었다.
https://github.com/facebook/react-native/issues/35210
위 링크를 보면 알 수 있듯이 2022년 11월 4일부터 안드로이드 앱 빌드할 때 오류가 나고 있음을 리액트 팀에서 안내하고 있다.
원인은 /프로젝트 폴더/android/app/build.gradle 파일에
dependencies { ... 생략 implementation "com.facebook.react:react-native:+" ... 생략
이렇게 작성되어져 있을텐데 (Expo 로 개발한 버전 아님 주의)
:+ 이 표시를 통해 가져오는 버전이 없어서 Could not find react-native-0.71.0-rc.0-release.aar 이런식으로 오류가 나고 있던 것이다.
해결 방법으로 여러가지를 제시하고 있다.
저 :+ 표시가 아니라 아랫버전으로 고정해서 가져오자는 것도 있었는데 해보았지만 실패했다.내가 성공한 케이스는 아래와 같다. (경로를 주의하여 꼭 봐야한다.)
/프로젝트 폴더/android/build.gradle
아까 문제가 되었던 파일은 /프로젝트 폴더/android/app/build.gradle 이였고,
지금 수정할 파일은 /프로젝트 폴더/android/build.gradle 이다. 헷갈리지 말자.
파일 스크롤을 내리다보면 allprojects{ 이 보일 것이다. 그 위 아래로 아래처럼 추가하면 된다.
def REACT_NATIVE_VERSION = new File(['node', '--print',"JSON.parse(require('fs').readFileSync(require.resolve('react-native/package.json'), 'utf-8')).version"].execute(null, rootDir).text.trim()) allprojects { configurations.all { resolutionStrategy { // Remove this override in 0.65+, as a proper fix is included in react-native itself. force "com.facebook.react:react-native:" + REACT_NATIVE_VERSION } } ... 생략
위 처럼 추가해주고 릴리즈 번들링 하니 정상적으로 처리되었다.