[React Native] 안드로이드 배포파일 만들기

서주·2023년 12월 5일

expo 버전을 올리면서 기존의 expo build:android방식이 사용 불가능하다고 한다.
너무 자주 업데이트가 되어서 공식문서를 찾아봤다.

expo 공식문서

eas cli 설치하고
eas login하고
eas configure하고
eas build -platform android를 했는데 !
자꾸 에러가 났다. 로컬에서 돌릴 때는 잘 돌아갔는데.

몇몇 에러들은 에러 로그를 확인해 고쳤다. 그런데 bundle이 잘못됐다거나 MainActivity.java에 문제가 있다거나 하는 에러는 검색을 해도 원인이 잘 나오지 않았다.
이 질문이 딱 내 상황이었다. 하지만 이걸로 해결은 안됨

이런건 로그만으로 해결하기가 어려워서 결국 expo 프로젝트를 새로 생성하고 src와 package.json안의 패키지명만 옮기고 npm install한 후 배포를 해봤다.

이건 잘 됐다.

하나하나 옮겨 결국 해결했고 추정되는 원인은 다음과 같다.

  1. app.json에 이상한 데이터가 있음
  2. node_modules에 지원하지 않는 패키지가 들어가있음
  3. package_lock.json?의 존재
  4. 애드몹의 존재 (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파일이 생성되는데 플레이스토어 개발자계정을 가지고 있으면 이걸 플레이스토어에 업로드할 수 있다.
플레이스토어 배포 전 유의해야할 점이 있다

  • 개인정보처리방침 url첨부 : 개인정보처리방침을 url로 첨부해야하니 미리 준비해두는 것이 좋다. 구글 site로 손쉽게 만들 수 있다.
  • 2023년 11월 플레이스토어 정책 변경으로 배포 전, 20명의 사람에게 2주간 비공개 테스트를 해야한다고 한다.
  • 스크린샷 올릴 때 아이폰 스크린샷 찍어올리면 가끔 검토 반려된다고 한다.

0개의 댓글