자료실
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"
}
...
}
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
» | 리액트 안드로이드 배포 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 |