[RN]android 배포를 위한 release 빌드부터 오류캐치까지

도디·2020년 8월 9일
5

React Native

목록 보기
6/28
post-custom-banner

이제 드디어 스토어에 배포하는 날이 왔다. 두둥탁-
오늘은 안드로이드를 플레이스토어에 배포하는걸 알아보겠다.
빠른 시일 안에는 iOS를 앱스토어에 배포하는 글을 정리하겠지..


단계는 이러하다

  1. 구글 개발자 등록 (나는 이미 회사 계정이 등록 되어있다.)
  2. 안드로이드 서명키 생성
  3. 빌드
  4. 빌드된 앱 업로드하기

1.안드로이드 서명키 생성

구글 플레이 스토어에 업로드 하기 위해서는 서명키를 생성해야만 한다.
생성키는 잘 보관해야만 한다.
서명키가 바뀌면 빌드는 가능하나 스토어에 업로드 할수 없게 된다. 키를 변경해 앱을 등록하고자 한다면 구글에 문의하고 5일 정도 소요된다고 하니 좀 심각하게 생각하고 관리해야겠다.

안드로이드 서명 키 생성하기

cd android/add
// android 안의 app 위치로 이동

keytool -genkey -v -keystore [key-name].keystore -alias [key alias] -keyalg RSA -keysize 2048 -validity 10000
// 해당 명령어로 서명키를 생성하자
// ex) keytool -genkey -v -keystore dody-release-key.keystore -alias dody-key-alias -keyalg RSA -keysize 2048 -validity 10000

서명키를 확인하려면 아래 코드에 keyname을 넣고, 비밀번호를 작성하면 된다.

keytool -list -v -keystore <key_name>.keystore
// ex) keytool -list -v -keystore dody-release-key.keystore

오케이! 안드로이드 서명키는 성공적으로 만들었다.

2.빌드

이제 안드로이드를 빌드해보자. android 폴더로 이동해 다음 명령어를 쳐보자.
.app으로 빌드하고싶은지, .abb으로 빌드하고싶은지에 따라 위와 아래 코드를 적절히 사용하자ㅏ.

// 번들링 하기
react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle

// 안드로이드 폴더로 들어가서 
cd android

// .app 으로 빌드하기
./gradlew assembleRelease
./gradlew app:assembleRelease --stacktrace

// --stacktrace 옵션을 붙이는 이유는
// enableProguardInReleaseBuilds = true로 설정할 경우 빌드 에러가 발생할 경우가 있기 때문

// .abb으로 빌드하기 
cd android && ./gradlew bundleRelease

여기 빌드 시 오류가 많이들 난다. 우리는 오류를 찾아야만 한다..

  • 오류 1
    Task :app:mergeReleaseResources FAILED
    [raw/node_modules_csscolorkeywords_colors][프로젝트 경로]/android/app/src/main/res/raw/node_modules_csscolorkeywords_colors.json
    ...
  • 오류 1 해결안
    저런 오류 로그들이 엄청나게 길게 나온다. 저 위치에 있는 파일들을 삭제해주면 된다. 나는 android/app/src/main/res/raw안에 있는 파일들과 android/app/src/main/res/drawable- 파일들이 잘못되어서
    얘네들을 전부 삭제 해주었더니
    Task :app:mergeReleaseResources FAILED
    에러는 일단 잡혔다.
  • 오류 2
    Task :app:processReleaseResources FAILED
  • 오류 2 해결안
    스플래시 이미지를 위한 drawable 파일이 하나 남아있엇다. 그러다보니 나머지 drawable 폴더의 파일경로가 잘못 되어있었다. 그것만 수정하니까.

    드디어 내가 이걸 봣다.. 쉬엄쉬엄 보다 보니 2일이나 걸린 에러잡기

3.빌드된 앱 업로드

빌드에 성공한 앱은

android/app/build/outputs/apk/release/에 생성되며, 생성된 app-release.apk 파일을 구글 플레이 스토어에 올려주어야 한다고 한다.

profile
충전중..🤔
post-custom-banner

0개의 댓글