메뉴 건너뛰기

자료실

DATA

React Native - 안드로이드 앱을 빌드하고 구글 플레이 스토어에 배포하자

React Native CLI로 만든 어플리케이션을 안드로이드 앱으로 빌드하고 구글 플레이 스토어에 업로드 하는 과정을 알아본다.

준비할 것

  • 구글 개발자 등록
  • 안드로이드 서명 키 생성
  • 스크린샷(최소 2개의 스크린샷 필요): 측면 최소 320픽셀 측면 최대 3840픽셀의 JPG 또는 24비트 PNG(알파 없음)
  • 그래픽 이미지: 1024X500 픽셀의 JPG 또는 24비트 PNG(알파 없음)

구글 개발자 등록

구글 개발자 등록 페이지

개발자 등록에는 $25가 필요하며 매년 재등록을 해야 하는 iOS와는 달리 1회 등록으로 평생 이용이 가능하다. 위의 링크에서 차근차근 따라가면 된다.

카드를 등록하면 바로 결제가 이루어진다.

자세한 내용은 Dev Yakuza - 안드로이드 개발자 등록 블로그를 참고 바란다.

안드로이드 서명 키 생성

Facebook - Publishing to Google Play Store

안드로이드 앱을 빌드하고 구글 플레이 스토어에 업로드(배포)하기 위해서는 서명 키를 생성해야 한다. 생성한 서명 키는 잘 보관해야 하며, 서명 키가 바뀔 경우 빌드는 할 수 있으나, 스토어에 업로드 할 수 없게 된다.

[중요] 부득이하게 서명 키를 변경해 앱을 업로드하고자 한다면, 구글에 메일로 문의하여 서비스를 기다려야 한다. 변경된 서비스 키가 적용되는 데에도 시간이 꽤 소요되므로 통상 키 변경과 적용에는 5일 정도 걸릴 수 있다고 알아두자. (웬만하면 서명 키는 잘 보관하여 문제가 생기지 않게 하자.)

자, 이제 키를 생성하는 방법을 알아보자. 우선 루트 디렉토리에서 android/app으로 이동하여 키를 생성한다. 다른 디렉토리여도 상관 없으나 생성된 서명 키를 쉽게 사용하기 위해 우리는 저 디렉토리에 키를 생성하려 한다.

cd android/app
keytool -genkeypair -alias [키 별명] -keyalg RSA -keysize 2048 -validity 9125 -keystore keystore.jks

키 별명 부분에는 영문으로 별명(alias)을 지정해 주면 된다.

이 키는 2048비트 RSA 키이어야 하며 유효기간은 25년이어야 한다. 자세한 내용은 Android Studio 고객센터 - 앱 서명을 확인하자.

Terminal에서 차근차근 입력하며 key를 생성해 나간다.

중간에 맞는지를 질문하는데 맞으면 y, 틀리면 n을 입력하면 된다. 국가 코드는 ko를 입력한다(큰 상관은 없는 것 같다).다 생성하고 나면 위와 같은 화면이다. 성공했다.

안드로이드 빌드

이제 안드로이드를 빌드해 보자. android 폴더로 이동해 다음 명령어를 입력한다.

cd android
./gradlew assembleRelease

빌드된 파일은 android/app/build/outputs/apk/release/ 디렉토리에 생성되며 생성된 모든 파일을 구글 플레이 스토어에 모두 올려주어야 한다.위 사진 기준으로 output.json을 제외한 4개 파일을 모두 업로드 하게 된다.

구글 플레이 스토어에 앱 업로드하기

구글 플레이 스토어(Google Play Store)에 앱을 업로드 하기 위해서는 구글 플레이 콘솔(Google Play Console)을 사용한다. 구글 플레이 콘솔에 들어가 로그인 한다.로그인 한 후, 화면 오른쪽 상단의 “애플리케이션 만들기”라는 파란색 버튼을 클릭해 앱을 생성한다.앱 이름과 언어를 설정하고 만들기를 클릭한다.위 사진의 왼쪽 메뉴에서 빨간 사각형으로 표시된 것들이 기입해야 할 정보들이다. “앱 버전”을 제외한 나머지를 먼저 하나씩 채워 나가보자.빌드한 앱은 “앱 버전”에서 업로드 한다. 위 사진의 프로덕션 트랙이 앱을 업로드 할 수 있는 페이지이다. “관리” 버튼을 눌러보자.“새 버전 출시하기” 버튼을 클릭한다.“계속”을 선택한 후 “추가할 Android App Bundle 및 APK” 섹션에서 “파일 찾아보기” 버튼을 클릭해, 아까 빌드했던 모든 파일(json 제외)을 추가해준다.

APK 파일이 모두 추가되었으면 출시명(버전이름)과 “이전 버전의 새로운 기능” 부분을 채워 넣은 후 맨 밑에 “저장” 버튼, 이후 “검토” 버튼을 클릭하면 된다. 검토가 끝나면 앱을 게시하면 된다.

심사 기간

안드로이드 앱을 처음 등록할 경우 심사에는 1-3일 정도가 소요되고, 웬만하면 통과된다. 심지어 시작부터 버그로 작동하지 않는 경우도 통과되는 것 같다. 이후 업데이트 시에는 약 12-24시간이면 업데이트가 반영되는 것 같다. 빠른 경우 3시간 만에도 업데이트가 반영된다.

앱 업데이트

앱 업데이트는 아까 살펴보았던 구글 플레이 콘솔의 “앱 버전” 메뉴 - “프로덕션 트랙”에서 진행한다. 여기서 주의할 점이 있다. 업데이트를 위해 빌드하는 경우, 버전코드를 반드시 increment해야 한다.

android/app/build.gradle을 열고 스크롤을 내리면 versionCode라는 것을 찾을 수 있다. 매 업로드 시마다 이 숫자는 1씩 증가해야 한다. 깜빡해서 이 숫자를 증가시키지 않고 빌드한 채 업로드를 하려고 하면 구글 플레이 콘솔에서 업로드가 되지 않는 에러가 발생한다. versionName은 굳이 바꾸지 않더라도 versionCode만큼은 반드시 1씩 증가시킨 후, 빌드하고 업데이트를 진행해야 한다.

android {
    compileSdkVersion rootProject.ext.compileSdkVersion

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    defaultConfig {
        applicationId "com.native_makkcha"
        // multiDexEnabled true
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode 15 // 반드시 매 업데이트 목적의 빌드 시마다 1씩 증가시켜야 함
        versionName "1.1.1"
    }
    ...
}
번호 제목 글쓴이 날짜 조회 수
» 리액트 안드로이드 배포 2021 01.13 키스토어 파일을 보관을 생활화 합시다 소프터 2021.01.13 0
48 우분투 라라벨 설치 소프터 2021.01.04 1
47 우분투 18.04 도커(Docker) 설치 방법 소프터 2021.01.04 1
46 aws 대략가격 참고만 하세요 소프터 2020.12.28 6
45 [php] 비메오사용 정리 1 세팅 소프터 2020.12.22 0
44 [php ]두날짜 사이에 기간을 배열로 반환 하는 함수 소프터 2020.12.11 3
43 개인정보 보안관리 솔루션 가이드 소프터 2020.12.09 1
42 셀레리움을 이용한 로그인과 데이터 크롤링예제 윈도우 10 소프터 2020.12.07 4
41 파이어베이스 웹푸시 소프터 2020.11.28 26
40 리액트 웹뷰 멀티 팝업설정 소프터 2020.10.16 22
39 리액트 네이티브 스플레쉬 정리 소프터 2020.08.27 9
38 chrome 80 SameSite cookie CORS 보안 변경사항 php 대응 소프터 2020.07.22 237
37 phpMyAdmin 접속이 localhost 가 아닐경우 설정법. 소프터 2020.07.16 9
36 [디장고] ubuntu 18.04 웹서버에 올리는법 소프터 2020.07.02 55
35 [장고] mysql 연결하기 우분투 18.04 소프터 2020.07.02 1
34 우분투에서 타임존 변경 소프터 2020.06.18 1
33 react-native-permissions NSBluetoothAlwaysUsageDescription 권한을 요청할떄 소프터 2020.06.10 10
32 리액트 블루투스 모듈 ios 에서 pod spec 소프터 2020.06.10 1
31 xcode 캐시 지우는법 소프터 2020.06.10 2
30 [REACT NATIVE] 패키지명, 번들명 변경하기 PACKAGE, BUNDLE [ANDROID, IOS] [1] 소프터 2020.05.29 470