expo 버전을 올리면서 기존의 expo build:android방식이 사용 불가능하다고 한다.
너무 자주 업데이트가 되어서 공식문서를 찾아봤다.
eas cli 설치하고
eas login하고
eas configure하고
eas build -platform android를 했는데 !
자꾸 에러가 났다. 로컬에서 돌릴 때는 잘 돌아갔는데.
몇몇 에러들은 에러 로그를 확인해 고쳤다. 그런데 bundle이 잘못됐다거나 MainActivity.java에 문제가 있다거나 하는 에러는 검색을 해도 원인이 잘 나오지 않았다.
이 질문이 딱 내 상황이었다. 하지만 이걸로 해결은 안됨
이런건 로그만으로 해결하기가 어려워서 결국 expo 프로젝트를 새로 생성하고 src와 package.json안의 패키지명만 옮기고 npm install한 후 배포를 해봤다.
이건 잘 됐다.
하나하나 옮겨 결국 해결했고 추정되는 원인은 다음과 같다.
- app.json에 이상한 데이터가 있음
- node_modules에 지원하지 않는 패키지가 들어가있음
- package_lock.json?의 존재
- 애드몹의 존재 (2번이랑 연관되는 것 같다)
app.json내 데이터를 최소화했고 에드몹(react-native-google-mobile-ad)을 uninstall하고, node_module과 package_lock?폴더를 삭제하고 npm install했다.
참고로 에드몹(react-native-google-mobile-ad)이 버전 변경으로 서드파티로 됐다고 한다. 기존의 리액트 네이티브 모듈이 아니라서npx expo start이런걸로는 실행이 안되고 prebuild하거나 build해야만 실행이 된다고 한다.
애드몹 참고 링크
그런데 나는 애드몹때문에 빌드가 안돼서 그냥 애드몹을 제거했다.
빌드가 완료되면 aab파일이 생성되는데 플레이스토어 개발자계정을 가지고 있으면 이걸 플레이스토어에 업로드할 수 있다.
플레이스토어 배포 전 유의해야할 점이 있다