2020-03-30
React Native 0.60부터 AndroidX가 적용되면서, AndroidX를 지원하지 않는 npm package, 정확히는 AndroidX를 지원하지 않는 Java 코드를 포함한 npm package를 이용하기 위해서는 이 Java 코드가 AndroidX를 지원하도록 변환해줘야 한다.
jetifier는 이러한 변환을 자동으로 수행해 주는 tool이며, npx jetify
는 이 tool을 실행하는 명령어다.
react-native 0.60 버전 이상 부터는 react-native-cli로 안드로이드 앱을 빌드할 경우 자동으로 이 과정이 수행되어 이와 관련된 컴파일 에러를 만날 일이 없다.
그러나 만약 스토어에 업로드 하기 위해 깨끗한 새 빌드를 만들 목적으로 작업하던 프로젝트에 rm -rf node_modules
명령을 치고, 새로이 npm install
을 명령했다면!
이전에 RN cli로 인해 patch되었던 node_modules 안의 AndroidX 미지원 Java 코드들은 patch되지 않은 싱싱한 코드로 돌아가버린다.
이 때 ./gradlew bundleRelease
등의 과정으로 빌드를 수행하면 특정 npm package에서 dependency를 찾지 못해 컴파일 에러가 나는걸 볼 수 있다.
대놓고 AndroidX 같은 키워드를 에러메시지에 표현해주지 않기 때문에, 원인이 이것 때문임을 알기 위해서는 구글링이 필요할 수 있다.