[React-Native] 안드로이드 key store & AAB 파일 생성

DaYoung·2024년 5월 9일

React-Native

목록 보기
27/35

개발 완료 후, google play sotre 출시를 위해 release용 인증서를 생성함

1.key store 생성

안드로이드 앱을 play store에 올리려면 배포할 때 개발자가 서명을 해야한다.
이 서명을 키스토어(keysotre)라고 한다.
Keystore는 앱 개발자에 대한 정보를 서명한 암호화 된 파일로 안전한 저장소 역할을 한다.
추후에 앱을 업데이트 할 때, 새로운 버전이 이전 버전과 동일한 키스토어로 서명되었는지를 확인하여 앱의 신원을 확인한다.

Keystore을 사용하는 이유는
앱의 신원이 확인되고, 업데이트 과정에서도 보안적인 문제를 방지할 수 있기 때문이다.

your_key_name과 your_key_alias는 원하는 이름으로 작성하면 된다.
해당 키는 보안성이 좋아야 하기 때문에 기본값 1024 대신 탈취하기 보다 어려운 2048로 변경하였다.


/android/app 위치에서 아래 커맨드 실행

keytool -genkey -v -keystore your_key_name.keystore -alias your_key_alias -keyalg RSA -keysize 2048 -validity 10000

해당 명령어를 입력하면 아래와 같이
해당 키 저장소의 정보를 입력하라는 문구가 나온다.

해당 키 저장소 정보 입력

Enter your keystore password: password1234 // 비밀번호
Re-enter new password: password1234 // 비밀번호 재입력
What is your first and last name? [unknown]: DaYoung // 개발자 이름
What is the name of your organizational unit? [unknown]: company // 회사 개발팀 
What is the name of your organization? [unknown]: company // 회사이름
What is the name of your city or Locality? [unknown]: korea // 대한민국
What is the name of your State or Province? [unknown]: seoul // 서울
What is the two-letter country code for this unit? [unknown]: kr // 국가코드

다 입력하고 나면 10000일 동안 유효한 해당 your_key_name.keystore 라는 프로젝트 디렉토리에 키 저장소 파일이 생성되게 된다.

만약 Keystore 비밀번호를 잃어버렸을 경우, 아래 참고
https://ravirajdesai501.medium.com/recover-your-lost-android-keystore-file-b9cc2e3d8762#:~:text=In%20the%20menu%20bar%2C%20click

그리고 아래와 같이 [project]/android/app 위치에 my-upload-key.keystore 가 생성된다.


2.Gradle 설정

android / app / build.gradle에 다음 코드를 추가한다.

singingConfigs {
	debug {
    	...
    }
    release {
  			if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
                storeFile file(MYAPP_RELEASE_STORE_FILE)
                storePassword MYAPP_RELEASE_STORE_PASSWORD
                keyAlias MYAPP_RELEASE_KEY_ALIAS
                keyPassword MYAPP_RELEASE_KEY_PASSWORD
            }
    }
  ...
  
  buildTypes {
    debug {
      ...
    }
      release {
        ...
        signingConfig signingConfigs.release
      }
  }
}

프로젝트의 android/gradle.properties를 편집해 다음 코드를 추가한다.

MYAPP_RELEASE_STORE_FILE=snoozz.keystore
MYAPP_RELEASE_KEY_ALIAS=snoozz
MYAPP_RELEASE_STORE_PASSWORD=password
MYAPP_RELEASE_KEY_PASSWORD=password

3.AAB 파일 생성

AAB(Android App Bundle)은 안드로이드 확장자 종류 중 하나인데,
기존 apk의 용량 문제를 해결하기 위해서 개발되었다.
apk는 하나의 파일 안에 여러개의 ABI(Application binary Interface)를 포함해야 하기 때문에 apk 파일의 크기가 커질 수 밖에 없다.
파일의 크기가 크다면 그만큼 다운로드나 업데이트 할 때 많은 시간이 들게 된다.
그렇게 된다면 유저가 사용하는 입장에서 불편함을 겪을 수 밖에 없는데
이를 해결하기 위해서 aab가 개발 되었다.

AAB 파일 생성 명령어를 입력한다.

cd android
./gradlew bundleRelease

aab 파일을 google play store에 업로드하여 앱을 출시 한다!



<참고>
https://velog.io/@dear_sopi9211/react-native-%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-APKAAB-%ED%8C%8C%EC%9D%BC-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0

https://blog.naver.com/PostView.naver?blogId=sally_company&logNo=222465780422

profile
안녕하세요. 프론트앤드 개발자 홍다영입니다.

0개의 댓글