[EXPO] 안드로이드 배포 시 'The releases is not compliant with the Google Play 64-bit requirement' 에러

현재 환경

  • "expo" : "31.0.4"
  • "react" : "16.5.0"
  • "firebase" : "^4.12.1"

문제

  1. expo build:android 를 통해서 빌드한 apk 파일을 구글플레이에 배포하려고 하는데 구글 콘솔에서 다음과 같은 에러가 발생한다.

문제의 요점은 구글이 지난 8월을 기점으로 배포 정책을 업데이트 했는데 배포되는 어플리케이션은 64-bit 요구사항을 충족해야 배포가 가능하게 되었다. 자세한 내용은 여기 를 통해서 확인하시길.

  1. ExpoSDK 31 에서는 빌드되는 apk 파일이 64-bit이 아닌 32-bit만 지원한다. 그래서 Expo 측에서 이러한 이슈를 대응하기 위해서 33버전에 64-bit를 지원하도록 반영했다.
    https://github.com/expo/expo/pull/4565

  2. ExpoSDK 31 버전을 33으로 올리면 된다. 무척이나 간단하다!

  3. 인 줄 알았는데 더 큰 문제가 있었다.

  4. ExpoSDK 31 에 맞게 사용하던 디펜던시들이 33으로 버전 업되면서 엉키기 시작한다.
    예를 들어 "react-native" : "~~expo/react-native/archive/sdk-31.0.0.tar.gz" 라던지, expo 를 기반으로 하는 디펜던시들이 꼬인다.

  5. 모듈 import 과정에서도 에러가 난다. 알고 보니 업데이트 하면서 import 하는 모냥새를 바꿔버렸다.

해결

  1. package.json 에서 "expo" : "^33.0.0"
  2. app.json 에서 "sdkVersion" : "33.0.0"
  3. watchman watch-del-all && rm -rf node_modules && rm -rf package-lock.json && npm cache clean --force && npm install
    불필요하게 남아있는 캐시데이터 때문에 엉킴으로 고생하지 말자.
  4. 이렇게 하면 이런 저런 디펜던시들이 충돌이 나면서 설치가 안된다.
    에러 로그를 보면서 한땀한땀 고쳐야한다. 이 부분이 가장 고생이다. 각자 사용하는 모듈들이 다르기 때문에 이 부분은 스스로 잘 해결되길 바랄 수 밖에…
  5. 다 되었으면 npm run start --reset-cache
공유하기